!O3      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e f g h i j k l m n o p q r s t u v w x y z {!|!}!~!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""""""#########################$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%*&Safe 6Safef'Safe(None)SafeJ med-module+Return empty list if start pointer is zero. med-module:Strings tend to be fixed width fields with trailing zeros. 0*None  NoneK    None1None!"%$#&'!"%$#&'None)*.-,+/0)*.-,+/0Nones23>=;:987654<?23>=;:987654<?None ABDCFEGABDCFEGNone IJMKLNIJMKLN None PQWVUTSRX PQWVUTSRX None!kZ[gfedcba`_^]\hZ[gfedcba`_^]\h None"jkmlonpjkmlonp None"rsvwtuxrsvwtux None"z{}|~z{}|~None# None$INone$None%None%None%None&ONone& None'KNone(ANone(          None* med-module!Interpret tempo related commands.None+! med-module block indices !"# !"#None+%&(')%&(')None,S+,.-/+,.-/None,12>=<;:9873654?12>=<;:9873654?None-_ABNOMLKJIHGCFEDPABNOMLKJIHGCFEDPNone.RSXWVUYTZ^]\[_Z^]\[RSXWVUYT_ None.bcxwvutsrqponmjigefklhdybcxwvutsrqponmjigefklhdy!None/{|~}{|~}"None0#None1$None2%None3q+,-./)0)1)2)3)4)5)6*7*8*9*:*;*<*=*>*?*@*A*B*CDEFFGHIJKKLMNIOPQQRSTUMIVWWXYZ[\]^_M`aIbccdeGHIfgghijIk l l m n o p q r I s t t u v w x y z { | } ~  I   d e G H I   h i j I   i N       IMIIMIMIII{IIIuvwhyz{|}IIIMmn     IMmn     II    ! " # $ % & ' ( ) * + , - . / 0 1 2 I 3!4!4! !!!"!#!$!%!&!!!'!(!)!*!+!,!-!.!/!0!1!2!I!5"6"6" "!"""#"$"%"&"""'"(")"*"+","-"."/"0"1"2"I"7#8#8# #!#"###$#%#&###'#(#)#*#+#,#-#.#/#0#1#2#I#9$:$:$m$n$o$p$q$r$X$Y$Z$[$\$]$^$_$`$a$$;$<$=$>%?%?%@%A%B%C%I%D%E&@&6&F&G&H&I&J&K&L&M'N'O'P(@(6(Q(L(R)S)T)U)V)W)X)Y)Z*7*8*[*\])med-module-0.1.2.1-GiMBITOISu6GrrN0Lp21HJSound.MED.Basic.HumanSound.MED.Basic.AmigaSound.MED.Raw.CmdPageDataSound.MED.Raw.BlockCmdPageTableSound.MED.Raw.BlockInfoSound.MED.Raw.InstrExtSound.MED.Raw.MMD0NoteDataSound.MED.Raw.MMD0BlockSound.MED.Raw.MMD0SampleSound.MED.Raw.MMD0SongSound.MED.Raw.MMD1NoteDataSound.MED.Raw.MMD1BlockSound.MED.Generic.BlockSound.MED.Raw.MMDARexxTrigCmdSound.MED.Raw.MMDARexxSound.MED.Raw.MMDDumpSound.MED.Raw.MMDDumpDataSound.MED.Raw.MMDInfoSound.MED.Raw.MMDInstrInfoSound.MED.Raw.MMDMIDICmd3xSound.MED.Raw.NotationInfoSound.MED.Raw.MMD0expSound.MED.Raw.PlaySeqSound.MED.Raw.MMD2SongSound.MED.Generic.TempoSound.MED.Generic.PlaySeqSound.MED.Raw.SampleInstrSound.MED.Raw.SynthWFSound.MED.Raw.SynthInstrSound.MED.Raw.HybridInstrSound.MED.Raw.InstrHdrSound.MED.Raw.MMD3Sound.MED.Raw.MMD2Sound.MED.Raw.MMD1Sound.MED.Raw.MMD0Sound.MED.Generic.InstrumentSound.MED.GenericSound.MED.Basic.ByteStringSound.MED.Basic.PrettySound.MED.Basic.StorableSound.MED.Basic.UtilitySound.MED.Basic.AmigaPrivateHumanhumanboldbold_onbold_offUBYTEBYTEUWORDWORDULONGLONGPTRByteStringReaderStorableReaderReaderpeekLONG peekULONGpeekWORD peekUWORDpeekBYTE peekUBYTEPeekpeekPTR runStorable runByteStringloadMEMfreeMEM CmdPageDatacommanddatabytepeek$fShowCmdPageDataBlockCmdPageTable num_pagesreservedpagespeekPage$fShowBlockCmdPageTable BlockInfohlmask blockname blocknamelen pagetable$fShowBlockInfoInstrExtholddecaysuppress_midi_offfinetune default_pitch instr_flagslong_midi_preset output_device long_repeat long_replen$fShowInstrExt MMD0NoteDatanote instrument$fShowMMD0NoteData MMD0Block numtrackslinesnotedata$fShowMMD0Block MMD0Samplerepreplenmidich midipresetsvolstrans$fShowMMD0SampleMMD0Songsample numblockssonglenplayseqdeftempo playtranspflagsflags2tempo2trkvol mastervol numsamples$fShowMMD0Song MMD1NoteData$fShowMMD1NoteData MMD1Blockinfo$fShowMMD1BlockMEDBlocknametracksseqdataLine HighlightValCmdInstNote medblock0 medblock1 highlightLine humanLinenotes$fHumanMEDBlockMMDARexxTrigCmdnextcmdnumpadcmdtypecmdportcmd_lenport_len$fShowMMDARexxTrigCmdMMDARexx trigcmdlentrigcmd$fShowMMDARexxMMDDumplendatext_len $fShowMMDDump MMDDumpDatanumdumpsdumps$fShowMMDDumpDataMMDInfotyp $fShowMMDInfo MMDInstrInfo$fShowMMDInstrInfo MMDMIDICmd3x struct_vernum_of_settings ctrlr_types ctrlr_numbers$fShowMMDMIDICmd3x NotationInfo n_of_sharpstrkseltrkshowtrkghostnotetr$fShowNotationInfoMMD0expnextmodexp_smp s_ext_entries s_ext_entrszannotxtannoleniinfo i_ext_entries i_ext_entrszjumpmaskrgbtable channelsplitn_infosongname songnamelenmmdinfommdrexxmmdcmd3x reserved2tag_end $fShowMMD0expPlaySeq reserved0 reserved1seq $fShowPlaySeqMMD2Song playseqtable sectiontable trackvolsnumpseqs trackpansflags3voladjchannels mix_echotype mix_echodepth mix_echolen mix_stereoseppad0pad1$fShowMMD2SongModeSpeedOctaBPM linesPerBeatMEDTempomodeprimary secondary song0Tempo song2TempoupdatetoTime MEDPlaySeqindicesplaySeq0playSeq2$fHumanMEDPlaySeq SampleInstroctaveschans$fShowSampleInstrSynthWFlen2wfdata $fShowSynthWF SynthInstr defaultdecay voltbllenwftbllenvolspeedwfspeedwformsvoltblwftblwf$fShowSynthInstr HybridInstrwf0$fShowHybridInstrInstrHdrstypes16stereomd16 InstrumentUnknownHybrid SyntheticSample$fShowInstrument$fShowInstrHdrMMD3idmodlensongpsecnumpseqblockarrmmdflags reserved3smplarr reserved4expdata reserved5pstatepblockplinepseqnum actplaylinecounter extra_songs $fShowMMD3MMD2 $fShowMMD2MMD1 $fShowMMD1MMD0 $fShowMMD0 MEDInstrumentmedinstruments medinstrument$fHumanMEDInstrument$fShowMEDInstrumentMEDinstrsblocksplayseqstempoload $fHumanMED peekInt32 peekInt16peekInt8 peekWord32 peekWord16<+ peekOffset peekWord8prettypretty'indentMEMpeekBigpointerRangeGenCheckstringFromBytes$?skipIf pointerRangepointerRangeGenpointerRangeGen2chunk liftStorableliftByteString