From 921af23d25f1e97ba74d40acedfc23b019f0e2a4 Mon Sep 17 00:00:00 2001 From: Marcus10110 Date: Thu, 29 Oct 2020 15:07:49 -0700 Subject: [PATCH] clang-format update of ARM Serial Wire Debug (SWD) Analyzer --- src/SWDAnalyzer.cpp | 142 +-- src/SWDAnalyzer.h | 39 +- src/SWDAnalyzerResults.cpp | 441 +++---- src/SWDAnalyzerResults.h | 44 +- src/SWDAnalyzerSettings.cpp | 107 +- src/SWDAnalyzerSettings.h | 26 +- src/SWDSimulationDataGenerator.cpp | 1767 ++++++++++++++-------------- src/SWDSimulationDataGenerator.h | 67 +- src/SWDTypes.cpp | 758 ++++++------ src/SWDTypes.h | 261 ++-- src/SWDUtils.cpp | 342 +++--- src/SWDUtils.h | 16 +- 12 files changed, 2058 insertions(+), 1952 deletions(-) diff --git a/src/SWDAnalyzer.cpp b/src/SWDAnalyzer.cpp index aab577f..dbb1da0 100644 --- a/src/SWDAnalyzer.cpp +++ b/src/SWDAnalyzer.cpp @@ -7,116 +7,116 @@ #include "SWDAnalyzerSettings.h" #include "SWDUtils.h" -SWDAnalyzer::SWDAnalyzer() - : mSimulationInitilized(false) +SWDAnalyzer::SWDAnalyzer() : mSimulationInitilized( false ) { - SetAnalyzerSettings(&mSettings); + SetAnalyzerSettings( &mSettings ); } SWDAnalyzer::~SWDAnalyzer() { - KillThread(); + KillThread(); } void SWDAnalyzer::SetupResults() { - // reset the results - mResults.reset( new SWDAnalyzerResults( this, &mSettings ) ); - SetAnalyzerResults( mResults.get() ); + // reset the results + mResults.reset( new SWDAnalyzerResults( this, &mSettings ) ); + SetAnalyzerResults( mResults.get() ); - // set which channels will carry bubbles - mResults->AddChannelBubblesWillAppearOn( mSettings.mSWDIO ); - mResults->AddChannelBubblesWillAppearOn( mSettings.mSWCLK ); + // set which channels will carry bubbles + mResults->AddChannelBubblesWillAppearOn( mSettings.mSWDIO ); + mResults->AddChannelBubblesWillAppearOn( mSettings.mSWCLK ); } void SWDAnalyzer::WorkerThread() { - //SetupResults(); - // get the channel pointers - mSWDIO = GetAnalyzerChannelData( mSettings.mSWDIO ); - mSWCLK = GetAnalyzerChannelData( mSettings.mSWCLK ); - - mSWDParser.Setup( mSWDIO, mSWCLK, this ); - - // these are our three objects that SWDParser will fill with data - // on calls to IsOperation or IsLineReset - SWDOperation tran; - SWDLineReset reset; - SWDBit error_bit; - - mSWDParser.Clear(); - - // For every new bit the parser extracts from the stream, - // ask if this can be a valid operation or line reset. - // A valid operation will have the constant part of the request correctly set, - // and also the parity bits will be correct. - // A valid line reset has at least 50 high bits in succession. - for (;;) - { - if (mSWDParser.IsOperation(tran)) - { - tran.AddFrames(mResults.get()); - tran.AddMarkers(mResults.get()); - - mResults->CommitResults(); - - } else if (mSWDParser.IsLineReset(reset)) { - - reset.AddFrames(mResults.get()); - - mResults->CommitResults(); - - } else { - - // This is neither a valid transaction nor a valid reset, - // so remove the first bit and try again. - // We're dropping the error bit into oblivion. - error_bit = mSWDParser.PopFrontBit(); - } - - ReportProgress(mSWDIO->GetSampleNumber()); - } + // SetupResults(); + // get the channel pointers + mSWDIO = GetAnalyzerChannelData( mSettings.mSWDIO ); + mSWCLK = GetAnalyzerChannelData( mSettings.mSWCLK ); + + mSWDParser.Setup( mSWDIO, mSWCLK, this ); + + // these are our three objects that SWDParser will fill with data + // on calls to IsOperation or IsLineReset + SWDOperation tran; + SWDLineReset reset; + SWDBit error_bit; + + mSWDParser.Clear(); + + // For every new bit the parser extracts from the stream, + // ask if this can be a valid operation or line reset. + // A valid operation will have the constant part of the request correctly set, + // and also the parity bits will be correct. + // A valid line reset has at least 50 high bits in succession. + for( ;; ) + { + if( mSWDParser.IsOperation( tran ) ) + { + tran.AddFrames( mResults.get() ); + tran.AddMarkers( mResults.get() ); + + mResults->CommitResults(); + } + else if( mSWDParser.IsLineReset( reset ) ) + { + reset.AddFrames( mResults.get() ); + + mResults->CommitResults(); + } + else + { + // This is neither a valid transaction nor a valid reset, + // so remove the first bit and try again. + // We're dropping the error bit into oblivion. + error_bit = mSWDParser.PopFrontBit(); + } + + ReportProgress( mSWDIO->GetSampleNumber() ); + } } bool SWDAnalyzer::NeedsRerun() { - return false; + return false; } -U32 SWDAnalyzer::GenerateSimulationData(U64 minimum_sample_index, U32 device_sample_rate, SimulationChannelDescriptor** simulation_channels) +U32 SWDAnalyzer::GenerateSimulationData( U64 minimum_sample_index, U32 device_sample_rate, + SimulationChannelDescriptor** simulation_channels ) { - if (!mSimulationInitilized) - { - mSimulationDataGenerator.Initialize(GetSimulationSampleRate(), &mSettings); - mSimulationInitilized = true; - } + if( !mSimulationInitilized ) + { + mSimulationDataGenerator.Initialize( GetSimulationSampleRate(), &mSettings ); + mSimulationInitilized = true; + } - return mSimulationDataGenerator.GenerateSimulationData(minimum_sample_index, device_sample_rate, simulation_channels); + return mSimulationDataGenerator.GenerateSimulationData( minimum_sample_index, device_sample_rate, simulation_channels ); } U32 SWDAnalyzer::GetMinimumSampleRateHz() { - // this 1MHz limit is a little arbitrary, since the specs don't say much about the - // valid frequency range a SWD stream should be in. - return 1000000; + // this 1MHz limit is a little arbitrary, since the specs don't say much about the + // valid frequency range a SWD stream should be in. + return 1000000; } const char* SWDAnalyzer::GetAnalyzerName() const { - return ::GetAnalyzerName(); + return ::GetAnalyzerName(); } const char* GetAnalyzerName() { - return "SWD"; + return "SWD"; } Analyzer* CreateAnalyzer() { - return new SWDAnalyzer(); + return new SWDAnalyzer(); } -void DestroyAnalyzer(Analyzer* analyzer) +void DestroyAnalyzer( Analyzer* analyzer ) { - delete analyzer; + delete analyzer; } diff --git a/src/SWDAnalyzer.h b/src/SWDAnalyzer.h index af00ca3..9086606 100644 --- a/src/SWDAnalyzer.h +++ b/src/SWDAnalyzer.h @@ -11,35 +11,34 @@ class SWDAnalyzer : public Analyzer2 { -public: - SWDAnalyzer(); - virtual ~SWDAnalyzer(); - virtual void SetupResults(); - virtual void WorkerThread(); + public: + SWDAnalyzer(); + virtual ~SWDAnalyzer(); + virtual void SetupResults(); + virtual void WorkerThread(); - virtual U32 GenerateSimulationData(U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels); - virtual U32 GetMinimumSampleRateHz(); + virtual U32 GenerateSimulationData( U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels ); + virtual U32 GetMinimumSampleRateHz(); - virtual const char* GetAnalyzerName() const; - virtual bool NeedsRerun(); + virtual const char* GetAnalyzerName() const; + virtual bool NeedsRerun(); -protected: // vars + protected: // vars + SWDAnalyzerSettings mSettings; + std::auto_ptr mResults; - SWDAnalyzerSettings mSettings; - std::auto_ptr mResults; + AnalyzerChannelData* mSWDIO; + AnalyzerChannelData* mSWCLK; - AnalyzerChannelData* mSWDIO; - AnalyzerChannelData* mSWCLK; + SWDSimulationDataGenerator mSimulationDataGenerator; - SWDSimulationDataGenerator mSimulationDataGenerator; + SWDParser mSWDParser; - SWDParser mSWDParser; - - bool mSimulationInitilized; + bool mSimulationInitilized; }; extern "C" ANALYZER_EXPORT const char* __cdecl GetAnalyzerName(); extern "C" ANALYZER_EXPORT Analyzer* __cdecl CreateAnalyzer(); -extern "C" ANALYZER_EXPORT void __cdecl DestroyAnalyzer(Analyzer* analyzer); +extern "C" ANALYZER_EXPORT void __cdecl DestroyAnalyzer( Analyzer* analyzer ); -#endif // SWD_ANALYZER_H \ No newline at end of file +#endif // SWD_ANALYZER_H \ No newline at end of file diff --git a/src/SWDAnalyzerResults.cpp b/src/SWDAnalyzerResults.cpp index cf4acf5..92bc31c 100644 --- a/src/SWDAnalyzerResults.cpp +++ b/src/SWDAnalyzerResults.cpp @@ -9,258 +9,271 @@ #include "SWDAnalyzerSettings.h" #include "SWDUtils.h" -SWDAnalyzerResults::SWDAnalyzerResults(SWDAnalyzer* analyzer, SWDAnalyzerSettings* settings) -: mSettings(settings), - mAnalyzer(analyzer) -{} +SWDAnalyzerResults::SWDAnalyzerResults( SWDAnalyzer* analyzer, SWDAnalyzerSettings* settings ) + : mSettings( settings ), mAnalyzer( analyzer ) +{ +} SWDAnalyzerResults::~SWDAnalyzerResults() -{} +{ +} -double SWDAnalyzerResults::GetSampleTime(S64 sample) const +double SWDAnalyzerResults::GetSampleTime( S64 sample ) const { - return (sample - mAnalyzer->GetTriggerSample()) / double(mAnalyzer->GetSampleRate()); + return ( sample - mAnalyzer->GetTriggerSample() ) / double( mAnalyzer->GetSampleRate() ); } -std::string SWDAnalyzerResults::GetSampleTimeStr(S64 sample) const +std::string SWDAnalyzerResults::GetSampleTimeStr( S64 sample ) const { - char time_str[128]; - AnalyzerHelpers::GetTimeString(sample, mAnalyzer->GetTriggerSample(), mAnalyzer->GetSampleRate(), time_str, sizeof(time_str)); + char time_str[ 128 ]; + AnalyzerHelpers::GetTimeString( sample, mAnalyzer->GetTriggerSample(), mAnalyzer->GetSampleRate(), time_str, sizeof( time_str ) ); - // remove trailing zeros - int l = strlen(time_str); - if (l > 7) - time_str[l - 7] = '\0'; + // remove trailing zeros + int l = strlen( time_str ); + if( l > 7 ) + time_str[ l - 7 ] = '\0'; - return time_str; + return time_str; } -void SWDAnalyzerResults::GetBubbleText(const Frame& f, DisplayBase display_base, std::vector& results) +void SWDAnalyzerResults::GetBubbleText( const Frame& f, DisplayBase display_base, std::vector& results ) { - results.clear(); - - std::string result; - - if (f.mType == SWDFT_Request) - { - SWDRequestFrame& req((SWDRequestFrame&) f); - - std::string addr_str(int2str_sal(req.GetAddr(), display_base, 4)); - std::string reg_name(req.GetRegisterName()); - - results.push_back(std::string("Request ") + (req.IsAccessPort() ? " AccessPort" : " DebugPort") - + (req.IsRead() ? " Read" : " Write") - + " " + reg_name); - - results.push_back(int2str_sal(req.mData2, display_base)); - results.push_back("rq"); - results.push_back("req"); - results.push_back("request"); - results.push_back(std::string("request ") - + (req.IsAccessPort() ? "AP" : "DP") - + (req.IsRead() ? " R" : " W") - + " " + reg_name); - - results.push_back(std::string("Request ") - + (req.IsAccessPort() ? "AccessPort" : "DebugPort") - + (req.IsRead() ? " Read" : " Write") - + " " + reg_name); - - } else if (f.mType == SWDFT_LineReset) { - - results.push_back("Line Reset " + int2str(f.mData1) + " bits"); - results.push_back("rst"); - results.push_back("reset"); - results.push_back("Line Reset"); - - } else if (f.mType == SWDFT_Turnaround) { - - results.push_back("Turnaround"); - results.push_back("T"); - results.push_back("trn"); - results.push_back("turn"); - - } else if (f.mType == SWDFT_ACK) { - - if (f.mData1 == ACK_OK) - { - results.push_back("ACK OK"); - results.push_back("OK"); - } else if (f.mData1 == ACK_WAIT) { - results.push_back("ACK WAIT"); - results.push_back("WAIT"); - } else if (f.mData1 == ACK_FAULT) { - results.push_back("ACK FAULT"); - results.push_back("FAULT"); - } else { - results.push_back("ACK probably disconnected"); - results.push_back("ACK "); - results.push_back("disc"); - } - - results.push_back("ACK"); - - } else if (f.mType == SWDFT_WData) { - - std::string data_str(int2str_sal(f.mData1, display_base, 32)); - SWDRegisters reg(SWDRegisters(f.mData2)); - std::string reg_name(GetRegisterName(reg)); - std::string reg_value(GetRegisterValueDesc(reg, U32(f.mData1), display_base)); - - if (!reg_value.empty()) - results.push_back("WData " + data_str + " reg " + reg_name + " bits " + reg_value); - results.push_back("WData " + data_str + " reg " + reg_name); - results.push_back("WData"); - results.push_back("WData " + data_str); - - } else if (f.mType == SWDFT_DataParity) { - - results.push_back(std::string("Data parity") + (f.mData2 ? "ok" : "NOT OK")); - results.push_back(f.mData1 ? "1" : "0"); - results.push_back("prty"); - results.push_back("Parity"); - - } else if (f.mType == SWDFT_TrailingBits) { - - results.push_back("Trailing bits"); - results.push_back("Trail"); - - } else { - - std::string msg; - - switch (f.mType) - { - case SWDFT_Bit: msg = "bit " + int2str(f.mData2); break; - case SWDFT_WData: msg = "data"; break; - case SWDFT_DataParity: msg = "dprty"; break; - case SWDFT_Error: msg = "err"; break; - case SWDFT_Request: msg = "request"; break; - } - - results.push_back(msg); - } + results.clear(); + + std::string result; + + if( f.mType == SWDFT_Request ) + { + SWDRequestFrame& req( ( SWDRequestFrame& )f ); + + std::string addr_str( int2str_sal( req.GetAddr(), display_base, 4 ) ); + std::string reg_name( req.GetRegisterName() ); + + results.push_back( std::string( "Request " ) + ( req.IsAccessPort() ? " AccessPort" : " DebugPort" ) + + ( req.IsRead() ? " Read" : " Write" ) + " " + reg_name ); + + results.push_back( int2str_sal( req.mData2, display_base ) ); + results.push_back( "rq" ); + results.push_back( "req" ); + results.push_back( "request" ); + results.push_back( std::string( "request " ) + ( req.IsAccessPort() ? "AP" : "DP" ) + ( req.IsRead() ? " R" : " W" ) + " " + + reg_name ); + + results.push_back( std::string( "Request " ) + ( req.IsAccessPort() ? "AccessPort" : "DebugPort" ) + + ( req.IsRead() ? " Read" : " Write" ) + " " + reg_name ); + } + else if( f.mType == SWDFT_LineReset ) + { + results.push_back( "Line Reset " + int2str( f.mData1 ) + " bits" ); + results.push_back( "rst" ); + results.push_back( "reset" ); + results.push_back( "Line Reset" ); + } + else if( f.mType == SWDFT_Turnaround ) + { + results.push_back( "Turnaround" ); + results.push_back( "T" ); + results.push_back( "trn" ); + results.push_back( "turn" ); + } + else if( f.mType == SWDFT_ACK ) + { + if( f.mData1 == ACK_OK ) + { + results.push_back( "ACK OK" ); + results.push_back( "OK" ); + } + else if( f.mData1 == ACK_WAIT ) + { + results.push_back( "ACK WAIT" ); + results.push_back( "WAIT" ); + } + else if( f.mData1 == ACK_FAULT ) + { + results.push_back( "ACK FAULT" ); + results.push_back( "FAULT" ); + } + else + { + results.push_back( "ACK probably disconnected" ); + results.push_back( "ACK " ); + results.push_back( "disc" ); + } + + results.push_back( "ACK" ); + } + else if( f.mType == SWDFT_WData ) + { + std::string data_str( int2str_sal( f.mData1, display_base, 32 ) ); + SWDRegisters reg( SWDRegisters( f.mData2 ) ); + std::string reg_name( GetRegisterName( reg ) ); + std::string reg_value( GetRegisterValueDesc( reg, U32( f.mData1 ), display_base ) ); + + if( !reg_value.empty() ) + results.push_back( "WData " + data_str + " reg " + reg_name + " bits " + reg_value ); + results.push_back( "WData " + data_str + " reg " + reg_name ); + results.push_back( "WData" ); + results.push_back( "WData " + data_str ); + } + else if( f.mType == SWDFT_DataParity ) + { + results.push_back( std::string( "Data parity" ) + ( f.mData2 ? "ok" : "NOT OK" ) ); + results.push_back( f.mData1 ? "1" : "0" ); + results.push_back( "prty" ); + results.push_back( "Parity" ); + } + else if( f.mType == SWDFT_TrailingBits ) + { + results.push_back( "Trailing bits" ); + results.push_back( "Trail" ); + } + else + { + std::string msg; + + switch( f.mType ) + { + case SWDFT_Bit: + msg = "bit " + int2str( f.mData2 ); + break; + case SWDFT_WData: + msg = "data"; + break; + case SWDFT_DataParity: + msg = "dprty"; + break; + case SWDFT_Error: + msg = "err"; + break; + case SWDFT_Request: + msg = "request"; + break; + } + + results.push_back( msg ); + } } -void SWDAnalyzerResults::GenerateBubbleText(U64 frame_index, Channel& channel, DisplayBase display_base) +void SWDAnalyzerResults::GenerateBubbleText( U64 frame_index, Channel& channel, DisplayBase display_base ) { - ClearResultStrings(); - Frame f = GetFrame(frame_index); + ClearResultStrings(); + Frame f = GetFrame( frame_index ); - std::vector results; - GetBubbleText(f, display_base, results); + std::vector results; + GetBubbleText( f, display_base, results ); - for (std::vector::iterator ri(results.begin()); ri != results.end(); ++ri) - AddResultString(ri->c_str()); + for( std::vector::iterator ri( results.begin() ); ri != results.end(); ++ri ) + AddResultString( ri->c_str() ); } -#define EXP_RECORD_FIELDS 9 +#define EXP_RECORD_FIELDS 9 -void SaveRecord(std::vector& rec, std::ofstream& of) +void SaveRecord( std::vector& rec, std::ofstream& of ) { - if (rec.empty()) - return; + if( rec.empty() ) + return; - while (rec.size() < EXP_RECORD_FIELDS) - rec.push_back(""); + while( rec.size() < EXP_RECORD_FIELDS ) + rec.push_back( "" ); - for (std::vector::iterator ri(rec.begin()); ri != rec.end(); ++ri) - { - if (ri != rec.begin()) - of << "\t"; + for( std::vector::iterator ri( rec.begin() ); ri != rec.end(); ++ri ) + { + if( ri != rec.begin() ) + of << "\t"; - of << *ri; - } + of << *ri; + } - of << std::endl; + of << std::endl; - rec.clear(); + rec.clear(); } -void SWDAnalyzerResults::GenerateExportFile(const char* file, DisplayBase display_base, U32 export_type_user_id) +void SWDAnalyzerResults::GenerateExportFile( const char* file, DisplayBase display_base, U32 export_type_user_id ) { - std::ofstream of(file, std::ios::out); - - U64 trigger_sample = mAnalyzer->GetTriggerSample(); - U32 sample_rate = mAnalyzer->GetSampleRate(); - - of << "Time\tType\tR/W\tAP/DP\tRegister\tRequest byte\tACK\tWData\tWData details" << std::endl; - - Frame f; - const U64 num_frames = GetNumFrames(); - std::vector record; - for (U64 fcnt = 0; fcnt < num_frames; fcnt++) - { - // get the frame - f = GetFrame(fcnt); - - if (f.mType == SWDFT_LineReset) - { - SaveRecord(record, of); - - record.push_back(GetSampleTimeStr(f.mStartingSampleInclusive)); - record.push_back("Line reset"); - SaveRecord(record, of); - } else if (f.mType == SWDFT_Request) { - - SaveRecord(record, of); - - SWDRequestFrame& req((SWDRequestFrame&) f); - record.push_back(GetSampleTimeStr(f.mStartingSampleInclusive)); - record.push_back("Operation"); - record.push_back(req.IsRead() ? "read" : "write"); - record.push_back(req.IsAccessPort() ? "AccessPort" : "DebugPort"); - record.push_back(req.GetRegisterName()); - record.push_back(int2str_sal(req.mData1, display_base, 8)); - - } else if (f.mType == SWDFT_ACK) { - - if (f.mData1 == ACK_OK) - record.push_back("OK"); - else if (f.mData1 == ACK_WAIT) - record.push_back("WAIT"); - else if (f.mData1 == ACK_FAULT) - record.push_back("FAULT"); - else - record.push_back(""); - - } else if (f.mType == SWDFT_WData) { - - record.push_back(int2str_sal(f.mData1, display_base, 32)); - - SWDRegisters reg(SWDRegisters(f.mData2)); - record.push_back(GetRegisterValueDesc(reg, U32(f.mData1), display_base)); - - SaveRecord(record, of); - } - - if (UpdateExportProgressAndCheckForCancel(fcnt, num_frames)) - return; - } - - UpdateExportProgressAndCheckForCancel(num_frames, num_frames); + std::ofstream of( file, std::ios::out ); + + U64 trigger_sample = mAnalyzer->GetTriggerSample(); + U32 sample_rate = mAnalyzer->GetSampleRate(); + + of << "Time\tType\tR/W\tAP/DP\tRegister\tRequest byte\tACK\tWData\tWData details" << std::endl; + + Frame f; + const U64 num_frames = GetNumFrames(); + std::vector record; + for( U64 fcnt = 0; fcnt < num_frames; fcnt++ ) + { + // get the frame + f = GetFrame( fcnt ); + + if( f.mType == SWDFT_LineReset ) + { + SaveRecord( record, of ); + + record.push_back( GetSampleTimeStr( f.mStartingSampleInclusive ) ); + record.push_back( "Line reset" ); + SaveRecord( record, of ); + } + else if( f.mType == SWDFT_Request ) + { + SaveRecord( record, of ); + + SWDRequestFrame& req( ( SWDRequestFrame& )f ); + record.push_back( GetSampleTimeStr( f.mStartingSampleInclusive ) ); + record.push_back( "Operation" ); + record.push_back( req.IsRead() ? "read" : "write" ); + record.push_back( req.IsAccessPort() ? "AccessPort" : "DebugPort" ); + record.push_back( req.GetRegisterName() ); + record.push_back( int2str_sal( req.mData1, display_base, 8 ) ); + } + else if( f.mType == SWDFT_ACK ) + { + if( f.mData1 == ACK_OK ) + record.push_back( "OK" ); + else if( f.mData1 == ACK_WAIT ) + record.push_back( "WAIT" ); + else if( f.mData1 == ACK_FAULT ) + record.push_back( "FAULT" ); + else + record.push_back( "" ); + } + else if( f.mType == SWDFT_WData ) + { + record.push_back( int2str_sal( f.mData1, display_base, 32 ) ); + + SWDRegisters reg( SWDRegisters( f.mData2 ) ); + record.push_back( GetRegisterValueDesc( reg, U32( f.mData1 ), display_base ) ); + + SaveRecord( record, of ); + } + + if( UpdateExportProgressAndCheckForCancel( fcnt, num_frames ) ) + return; + } + + UpdateExportProgressAndCheckForCancel( num_frames, num_frames ); } -void SWDAnalyzerResults::GenerateFrameTabularText(U64 frame_index, DisplayBase display_base) +void SWDAnalyzerResults::GenerateFrameTabularText( U64 frame_index, DisplayBase display_base ) { - ClearTabularText(); + ClearTabularText(); - std::vector results; - Frame f = GetFrame(frame_index); - GetBubbleText(f, display_base, results); + std::vector results; + Frame f = GetFrame( frame_index ); + GetBubbleText( f, display_base, results ); - if (!results.empty()) - AddTabularText(results.front().c_str()); + if( !results.empty() ) + AddTabularText( results.front().c_str() ); } -void SWDAnalyzerResults::GeneratePacketTabularText(U64 packet_id, DisplayBase display_base) +void SWDAnalyzerResults::GeneratePacketTabularText( U64 packet_id, DisplayBase display_base ) { - ClearResultStrings(); - AddResultString("not supported"); + ClearResultStrings(); + AddResultString( "not supported" ); } -void SWDAnalyzerResults::GenerateTransactionTabularText(U64 transaction_id, DisplayBase display_base) +void SWDAnalyzerResults::GenerateTransactionTabularText( U64 transaction_id, DisplayBase display_base ) { - ClearResultStrings(); - AddResultString("not supported"); + ClearResultStrings(); + AddResultString( "not supported" ); } diff --git a/src/SWDAnalyzerResults.h b/src/SWDAnalyzerResults.h index 26c6a3b..cb23d0a 100644 --- a/src/SWDAnalyzerResults.h +++ b/src/SWDAnalyzerResults.h @@ -6,35 +6,33 @@ class SWDAnalyzer; class SWDAnalyzerSettings; -class SWDAnalyzerResults: public AnalyzerResults +class SWDAnalyzerResults : public AnalyzerResults { -public: - SWDAnalyzerResults(SWDAnalyzer* analyzer, SWDAnalyzerSettings* settings); - virtual ~SWDAnalyzerResults(); + public: + SWDAnalyzerResults( SWDAnalyzer* analyzer, SWDAnalyzerSettings* settings ); + virtual ~SWDAnalyzerResults(); - virtual void GenerateBubbleText(U64 frame_index, Channel& channel, DisplayBase display_base); - virtual void GenerateExportFile(const char* file, DisplayBase display_base, U32 export_type_user_id); + virtual void GenerateBubbleText( U64 frame_index, Channel& channel, DisplayBase display_base ); + virtual void GenerateExportFile( const char* file, DisplayBase display_base, U32 export_type_user_id ); - virtual void GenerateFrameTabularText(U64 frame_index, DisplayBase display_base); - virtual void GeneratePacketTabularText(U64 packet_id, DisplayBase display_base); - virtual void GenerateTransactionTabularText(U64 transaction_id, DisplayBase display_base); + virtual void GenerateFrameTabularText( U64 frame_index, DisplayBase display_base ); + virtual void GeneratePacketTabularText( U64 packet_id, DisplayBase display_base ); + virtual void GenerateTransactionTabularText( U64 transaction_id, DisplayBase display_base ); - double GetSampleTime(S64 sample) const; - std::string GetSampleTimeStr(S64 sample) const; + double GetSampleTime( S64 sample ) const; + std::string GetSampleTimeStr( S64 sample ) const; - SWDAnalyzerSettings* GetSettings() - { - return mSettings; - } + SWDAnalyzerSettings* GetSettings() + { + return mSettings; + } -protected: // functions + protected: // functions + void GetBubbleText( const Frame& f, DisplayBase display_base, std::vector& results ); - void GetBubbleText(const Frame& f, DisplayBase display_base, std::vector& results); - -protected: // vars - - SWDAnalyzerSettings* mSettings; - SWDAnalyzer* mAnalyzer; + protected: // vars + SWDAnalyzerSettings* mSettings; + SWDAnalyzer* mAnalyzer; }; -#endif // SWD_ANALYZER_RESULTS_H \ No newline at end of file +#endif // SWD_ANALYZER_RESULTS_H \ No newline at end of file diff --git a/src/SWDAnalyzerSettings.cpp b/src/SWDAnalyzerSettings.cpp index 4b08dce..076955c 100644 --- a/src/SWDAnalyzerSettings.cpp +++ b/src/SWDAnalyzerSettings.cpp @@ -4,93 +4,92 @@ #include "SWDAnalyzerResults.h" #include "SWDTypes.h" -SWDAnalyzerSettings::SWDAnalyzerSettings() -: mSWDIO(UNDEFINED_CHANNEL), - mSWCLK(UNDEFINED_CHANNEL) +SWDAnalyzerSettings::SWDAnalyzerSettings() : mSWDIO( UNDEFINED_CHANNEL ), mSWCLK( UNDEFINED_CHANNEL ) { - // init the interface - mSWDIOInterface.SetTitleAndTooltip("SWDIO", "SWDIO"); - mSWDIOInterface.SetChannel(mSWDIO); + // init the interface + mSWDIOInterface.SetTitleAndTooltip( "SWDIO", "SWDIO" ); + mSWDIOInterface.SetChannel( mSWDIO ); - mSWCLKInterface.SetTitleAndTooltip("SWCLK", "SWCLK"); - mSWCLKInterface.SetChannel(mSWCLK); + mSWCLKInterface.SetTitleAndTooltip( "SWCLK", "SWCLK" ); + mSWCLKInterface.SetChannel( mSWCLK ); - // add the interface - AddInterface(&mSWDIOInterface); - AddInterface(&mSWCLKInterface); + // add the interface + AddInterface( &mSWDIOInterface ); + AddInterface( &mSWCLKInterface ); - // describe export - AddExportOption(0, "Export as text file"); - AddExportExtension(0, "text", "txt"); + // describe export + AddExportOption( 0, "Export as text file" ); + AddExportExtension( 0, "text", "txt" ); - ClearChannels(); + ClearChannels(); - AddChannel(mSWDIO, "SWDIO", false); - AddChannel(mSWCLK, "SWCLK", false); + AddChannel( mSWDIO, "SWDIO", false ); + AddChannel( mSWCLK, "SWCLK", false ); } SWDAnalyzerSettings::~SWDAnalyzerSettings() -{} +{ +} bool SWDAnalyzerSettings::SetSettingsFromInterfaces() { - if (mSWDIOInterface.GetChannel() == UNDEFINED_CHANNEL) - { - SetErrorText("Please select an input for the channel 1."); - return false; - } + if( mSWDIOInterface.GetChannel() == UNDEFINED_CHANNEL ) + { + SetErrorText( "Please select an input for the channel 1." ); + return false; + } - if (mSWCLKInterface.GetChannel() == UNDEFINED_CHANNEL) - { - SetErrorText("Please select an input for the channel 2."); - return false; - } + if( mSWCLKInterface.GetChannel() == UNDEFINED_CHANNEL ) + { + SetErrorText( "Please select an input for the channel 2." ); + return false; + } - mSWDIO = mSWDIOInterface.GetChannel(); - mSWCLK = mSWCLKInterface.GetChannel(); + mSWDIO = mSWDIOInterface.GetChannel(); + mSWCLK = mSWCLKInterface.GetChannel(); - if (mSWDIO == mSWCLK) - { - SetErrorText("Please select different inputs for the channels."); - return false; - } + if( mSWDIO == mSWCLK ) + { + SetErrorText( "Please select different inputs for the channels." ); + return false; + } - ClearChannels(); + ClearChannels(); - AddChannel(mSWDIO, "SWDIO", true); - AddChannel(mSWCLK, "SWCLK", true); + AddChannel( mSWDIO, "SWDIO", true ); + AddChannel( mSWCLK, "SWCLK", true ); - return true; + return true; } void SWDAnalyzerSettings::UpdateInterfacesFromSettings() { - mSWDIOInterface.SetChannel(mSWDIO); - mSWCLKInterface.SetChannel(mSWCLK); + mSWDIOInterface.SetChannel( mSWDIO ); + mSWCLKInterface.SetChannel( mSWCLK ); } -void SWDAnalyzerSettings::LoadSettings(const char* settings) +void SWDAnalyzerSettings::LoadSettings( const char* settings ) { - SimpleArchive text_archive; - text_archive.SetString(settings); + SimpleArchive text_archive; + text_archive.SetString( settings ); - text_archive >> mSWDIO; - text_archive >> mSWCLK; + text_archive >> mSWDIO; + text_archive >> mSWCLK; - ClearChannels(); + ClearChannels(); - AddChannel(mSWDIO, "SWDIO", true); - AddChannel(mSWCLK, "SWCLK", true); + AddChannel( mSWDIO, "SWDIO", true ); + AddChannel( mSWCLK, "SWCLK", true ); - UpdateInterfacesFromSettings(); + UpdateInterfacesFromSettings(); } const char* SWDAnalyzerSettings::SaveSettings() { - SimpleArchive text_archive; + SimpleArchive text_archive; - text_archive << mSWDIO; - text_archive << mSWCLK; + text_archive << mSWDIO; + text_archive << mSWCLK; - return SetReturnString(text_archive.GetString()); + return SetReturnString( text_archive.GetString() ); } diff --git a/src/SWDAnalyzerSettings.h b/src/SWDAnalyzerSettings.h index 9a336f1..91820f4 100644 --- a/src/SWDAnalyzerSettings.h +++ b/src/SWDAnalyzerSettings.h @@ -8,22 +8,22 @@ class SWDAnalyzerSettings : public AnalyzerSettings { -public: - SWDAnalyzerSettings(); - virtual ~SWDAnalyzerSettings(); + public: + SWDAnalyzerSettings(); + virtual ~SWDAnalyzerSettings(); - virtual bool SetSettingsFromInterfaces(); - virtual void LoadSettings(const char* settings); - virtual const char* SaveSettings(); + virtual bool SetSettingsFromInterfaces(); + virtual void LoadSettings( const char* settings ); + virtual const char* SaveSettings(); - void UpdateInterfacesFromSettings(); + void UpdateInterfacesFromSettings(); - Channel mSWDIO; - Channel mSWCLK; + Channel mSWDIO; + Channel mSWCLK; -protected: - AnalyzerSettingInterfaceChannel mSWDIOInterface; - AnalyzerSettingInterfaceChannel mSWCLKInterface; + protected: + AnalyzerSettingInterfaceChannel mSWDIOInterface; + AnalyzerSettingInterfaceChannel mSWCLKInterface; }; -#endif // SWD_ANALYZER_SETTINGS_H \ No newline at end of file +#endif // SWD_ANALYZER_SETTINGS_H \ No newline at end of file diff --git a/src/SWDSimulationDataGenerator.cpp b/src/SWDSimulationDataGenerator.cpp index d7c116d..9677ee6 100644 --- a/src/SWDSimulationDataGenerator.cpp +++ b/src/SWDSimulationDataGenerator.cpp @@ -3,939 +3,944 @@ #include "SWDTypes.h" -#define TENTH_US 0.0000001 +#define TENTH_US 0.0000001 // This simulation data. Taken from a real capture. struct SimulationData { - U8 request; - U32 data; + U8 request; + U32 data; }; -SimulationData simul_data[] = -{ -{0xA5, 0x0BB11477}, {0xA5, 0x0BB11477}, {0x81, 0x0000001E}, {0xA9, 0x50000000}, {0x8D, 0xF0000000}, {0xB1, 0x000000F0}, -{0x9F, 0x00000000}, {0xB7, 0x04770021}, {0xBD, 0xF0000003}, {0xB1, 0x00000000}, {0xA3, 0x23000012}, {0x8B, 0xF0000000}, -{0x9F, 0x00000000}, {0x9F, 0xF00FF003}, {0xA5, 0x0BB11477}, {0x81, 0x0000001E}, {0xA9, 0x50000000}, {0x8D, 0xF0000040}, -{0xB1, 0x00000000}, {0xA3, 0x23000002}, {0x8B, 0xE000ED00}, {0x9F, 0x00000000}, {0xBD, 0x410CC200}, {0x8B, 0xE000ED0C}, -{0x9F, 0x00000000}, {0xBD, 0xFA050000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0002000}, {0xA3, 0x23000012}, -{0xBB, 0x00000002}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x03000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0xBB, 0xA05F0001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0002000}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000040}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, -{0xBB, 0x01000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001000}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x20000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001000}, {0xA3, 0x23000012}, -{0xBB, 0x20000001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE00FF018}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000002}, -{0xBB, 0xA05F0003}, {0x9F, 0x00000000}, {0x9F, 0x01030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, -{0xA3, 0x23000012}, {0xB1, 0x00000010}, {0x8B, 0x00000000}, {0xB7, 0x00000000}, {0xBD, 0x4000A148}, {0x8B, 0x00000001}, -{0xB7, 0x00000000}, {0xBD, 0x00020000}, {0x8B, 0x00000002}, {0xB7, 0x00000000}, {0xBD, 0x00000001}, {0x8B, 0x00000003}, -{0xB7, 0x00000000}, {0xBD, 0x4000A000}, {0x8B, 0x00000004}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x8B, 0x00000005}, -{0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x8B, 0x00000006}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000007}, -{0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x8B, 0x00000008}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000009}, -{0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000A}, {0xB7, 0x00000000}, {0xBD, 0x1FFF4000}, {0x8B, 0x0000000B}, -{0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x8B, 0x0000000C}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000E}, -{0xB7, 0x00000000}, {0xBD, 0x00000173}, {0x8B, 0x0000000F}, {0xB7, 0x00000000}, {0xBD, 0x00000336}, {0x8B, 0x00000010}, -{0xB7, 0x00000000}, {0xBD, 0x01000000}, {0x8B, 0x00000011}, {0xB7, 0x00000000}, {0xBD, 0x20004000}, {0x8B, 0x00000012}, -{0xB7, 0x00000000}, {0xBD, 0xFFFFFFFC}, {0x8B, 0x00000014}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xF0000FEC}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xF0000FE8}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x0000004C}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xF0000FE4}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000040}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xF0000FE0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x10001000}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0xBD, 0xFFFFFFFF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x40000608}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x1000002C}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000010}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000400}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000014}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000100}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000034}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000002}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000038}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00002000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x1000003C}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00002000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000010}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000400}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000014}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000100}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x1000002C}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000010}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000400}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10001040}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0xBD, 0xFFFFFFFF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000010}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000400}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000014}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000100}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x1000002C}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x1000002C}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xBB, 0xA05F0003}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, {0xBB, 0x01000001}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000ED0C}, {0xA3, 0x23000012}, -{0xBB, 0x05FA0004}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x03030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0xBB, 0xA05F0003}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, -{0xBB, 0x01000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0xB1, 0x00000010}, {0x8B, 0x00000000}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000001}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000002}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000003}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000004}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000005}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000006}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000007}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000008}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000009}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000A}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000B}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000C}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000E}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000F}, {0xB7, 0x00000000}, {0xBD, 0x00000438}, {0x8B, 0x00000010}, {0xB7, 0x00000000}, -{0xBD, 0xC1000000}, {0x8B, 0x00000011}, {0xB7, 0x00000000}, {0xBD, 0x20004000}, {0x8B, 0x00000012}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFC}, {0x8B, 0x00000014}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE0002000}, {0xA3, 0x23000012}, {0xBB, 0x00000003}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x01000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE0001000}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x20000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE0001000}, {0xA3, 0x23000012}, {0xBB, 0x20000001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x10000010}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000400}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x10000014}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000100}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x40000524}, {0xA3, 0x23000012}, {0xBB, 0x0000000F}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x20000000}, {0xA3, 0x23000012}, {0xBB, 0x200008E8}, {0xBB, 0x200002D5}, {0xBB, 0x200002E7}, {0xBB, 0x200002E9}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x200002EB}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x200002ED}, {0xBB, 0x200002EF}, -{0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x00000000}, -{0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, -{0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBD, 0x00000000}, {0xB1, 0x00000000}, -{0x8B, 0x20000080}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, -{0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x200002F1}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0xF802F000}, -{0xBB, 0xF840F000}, {0xBB, 0xC830A00C}, {0xBB, 0x18243808}, {0xBB, 0x46A2182D}, {0xBB, 0x46AB1E67}, {0xBB, 0x465D4654}, -{0xBB, 0xD10142AC}, {0xBB, 0xF832F000}, {0xBB, 0x3E0F467E}, {0xBB, 0x46B6CC0F}, {0xBB, 0x42332601}, {0xBB, 0x1AFBD000}, -{0xBB, 0x46AB46A2}, {0xBB, 0x47184333}, {0xBB, 0x000002A0}, {0xBB, 0x000002C0}, {0xBB, 0xD3023A10}, {0xBB, 0xC178C878}, -{0xBB, 0x0752D8FA}, {0xBB, 0xC830D301}, {0xBB, 0xD501C130}, {0xBB, 0x600C6804}, {0xBB, 0x00004770}, {0xBB, 0x24002300}, -{0xBB, 0x26002500}, {0xBB, 0xD3013A10}, {0xBB, 0xD8FBC178}, {0xBB, 0xD3000752}, {0xBB, 0xD500C130}, {0xBB, 0x4770600B}, -{0xBB, 0x46C0B51F}, {0xBB, 0xBD1F46C0}, {0xBB, 0xBD10B510}, {0xBB, 0xF8E9F000}, {0xBB, 0xF7FF4611}, {0xBB, 0xF000FFF5}, -{0xBB, 0xF000F809}, {0xBB, 0xB403F901}, {0xBB, 0xFFF2F7FF}, {0xBB, 0xF000BC03}, {0xBB, 0x0000F905}, {0xBB, 0x4A0D2101}, -{0xBB, 0x490D6011}, {0xBB, 0xE0076808}, {0xBB, 0x1C496801}, {0xBB, 0x2100D003}, {0xBB, 0x60114A08}, {0xBB, 0x1D00E007}, -{0xBB, 0x68094907}, {0xBB, 0x68124A07}, {0xBB, 0x42811889}, {0xBB, 0xBF00D8F0}, {0xBB, 0x4A052101}, {0xBB, 0xBF006011}, -{0xBB, 0x0000E7FE}, {0xBB, 0x20000C04}, {0xBB, 0x20000C10}, {0xBB, 0x20000C14}, {0xBB, 0x20000C00}, {0xBB, 0x4841B500}, -{0xBB, 0xB28069C0}, {0xBB, 0x0003381D}, {0xBB, 0xF8DFF000}, {0xBB, 0x290D1718}, {0xBB, 0x29292929}, {0xBB, 0x2523290F}, -{0xBB, 0x1B192929}, {0xBB, 0x2113111F}, {0xBB, 0x27291529}, {0xBB, 0x2001291D}, {0xBB, 0x2001BD00}, {0xBB, 0x2001E7FC}, -{0xBB, 0x2001E7FA}, {0xBB, 0x2000E7F8}, {0xBB, 0x2001E7F6}, {0xBB, 0x2001E7F4}, {0xBB, 0x2001E7F2}, {0xBB, 0x2001E7F0}, -{0xBB, 0x2001E7EE}, {0xBB, 0x2000E7EC}, {0xBB, 0x2001E7EA}, {0xBB, 0x2001E7E8}, {0xBB, 0x2001E7E6}, {0xBB, 0x2001E7E4}, -{0xBB, 0xB500E7E2}, {0xBB, 0x69C04827}, {0xBB, 0x381DB280}, {0xBB, 0xF0000003}, {0xBB, 0x1718F8AC}, {0xBB, 0x2929290D}, -{0xBB, 0x290F2929}, {0xBB, 0x29292523}, {0xBB, 0x111F1B19}, {0xBB, 0x15292113}, {0xBB, 0x291D2729}, {0xBB, 0xBD002001}, -{0xBB, 0xE7FC2001}, {0xBB, 0xE7FA2000}, {0xBB, 0xE7F82000}, {0xBB, 0xE7F62001}, {0xBB, 0xE7F42001}, {0xBB, 0xE7F22000}, -{0xBB, 0xE7F02000}, {0xBB, 0xE7EE2000}, {0xBB, 0xE7EC2000}, {0xBB, 0xE7EA2001}, {0xBB, 0xE7E82001}, {0xBB, 0xE7E62001}, -{0xBB, 0xE7E42001}, {0xBB, 0xE7E22000}, {0xBB, 0xF7FFB510}, {0xBB, 0x2800FFCA}, {0xBB, 0x480DD005}, {0xBB, 0x6048490D}, -{0xBB, 0x490D13C8}, {0xBB, 0xF7FF6188}, {0xBB, 0x2800FF8D}, {0xBB, 0x2001D009}, {0xBB, 0x07092105}, {0xBB, 0x02122207}, -{0xBB, 0x67C81889}, {0xBB, 0x490707C0}, {0xBB, 0xBD1060C8}, {0xBB, 0x49074806}, {0xBB, 0x47706008}, {0xBB, 0x10000040}, -{0xBB, 0xC007FFDF}, {0xBB, 0x40000500}, {0xBB, 0x40006C00}, {0xBB, 0x50000500}, {0xBB, 0x00F42400}, {0xBB, 0x20000800}, -{0xBB, 0x6802480A}, {0xBB, 0x430A210F}, {0xBB, 0x48096002}, {0xBB, 0x48094780}, {0xBB, 0xE7FE4700}, {0xBB, 0xE7FEE7FE}, -{0xBB, 0xE7FEE7FE}, {0xBB, 0x0000E7FE}, {0xBB, 0x49064805}, {0xBB, 0x4B064A04}, {0xBB, 0x00004770}, {0xBB, 0x40000524}, -{0xBB, 0x2000027D}, {0xBB, 0x200000C1}, {0xBB, 0x20000868}, {0xBB, 0x200008E8}, {0xBB, 0x20000868}, {0xBB, 0x47704770}, -{0xBB, 0x46754770}, {0xBB, 0xF822F000}, {0xBB, 0x000546AE}, {0xBB, 0x46534669}, {0xBB, 0x00C008C0}, {0xBB, 0xB0184685}, -{0xBB, 0xF7FFB520}, {0xBB, 0xBC60FFDD}, {0xBB, 0x08492700}, {0xBB, 0x260046B6}, {0xBB, 0xC5C0C5C0}, {0xBB, 0xC5C0C5C0}, -{0xBB, 0xC5C0C5C0}, {0xBB, 0xC5C0C5C0}, {0xBB, 0x00493D40}, {0xBB, 0x4770468D}, {0xBB, 0x46C04604}, {0xBB, 0x462046C0}, -{0xBB, 0xFEF9F7FF}, {0xBB, 0x47704800}, {0xBB, 0x20000804}, {0xBB, 0x20184901}, {0xBB, 0xE7FEBEAB}, {0xBB, 0x00020026}, -{0xBB, 0xB4304770}, {0xBB, 0x1E644674}, {0xBB, 0x1C647825}, {0xBB, 0xD30442AB}, {0xBB, 0x005B5D63}, {0xBB, 0xBC3018E3}, -{0xBB, 0x461D4718}, {0xBB, 0x0000E7F8}, {0xBB, 0x200003BC}, {0xBB, 0x20000800}, {0xBB, 0x00000004}, {0xBB, 0x20000104}, -{0xBB, 0x200003C0}, {0xBB, 0x20000804}, {0xBB, 0x000000E4}, {0xBB, 0x20000120}, {0xBB, 0x00F42400}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C10}, {0xA3, 0x23000012}, {0xBB, 0xFFFFFFFF}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000000}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0x9F, 0x200008E8}, -{0x9F, 0x200002D5}, {0x9F, 0x200002E7}, {0x9F, 0x200002E9}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, -{0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x200002EB}, {0x9F, 0x00000000}, -{0x9F, 0x00000000}, {0x9F, 0x200002ED}, {0x9F, 0x200002EF}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, -{0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x00000000}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, -{0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, -{0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, -{0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x200002F1}, {0x9F, 0x00000000}, -{0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0xF802F000}, -{0x9F, 0xF840F000}, {0x9F, 0xC830A00C}, {0x9F, 0x18243808}, {0x9F, 0x46A2182D}, {0x9F, 0x46AB1E67}, {0x9F, 0x465D4654}, -{0x9F, 0xD10142AC}, {0x9F, 0xF832F000}, {0x9F, 0x3E0F467E}, {0x9F, 0x46B6CC0F}, {0x9F, 0x42332601}, {0x9F, 0x1AFBD000}, -{0x9F, 0x46AB46A2}, {0x9F, 0x47184333}, {0x9F, 0x000002A0}, {0x9F, 0x000002C0}, {0x9F, 0xD3023A10}, {0x9F, 0xC178C878}, -{0x9F, 0x0752D8FA}, {0x9F, 0xC830D301}, {0x9F, 0xD501C130}, {0x9F, 0x600C6804}, {0x9F, 0x00004770}, {0x9F, 0x24002300}, -{0x9F, 0x26002500}, {0x9F, 0xD3013A10}, {0x9F, 0xD8FBC178}, {0x9F, 0xD3000752}, {0x9F, 0xD500C130}, {0x9F, 0x4770600B}, -{0x9F, 0x46C0B51F}, {0x9F, 0xBD1F46C0}, {0x9F, 0xBD10B510}, {0x9F, 0xF8E9F000}, {0x9F, 0xF7FF4611}, {0x9F, 0xF000FFF5}, -{0x9F, 0xF000F809}, {0x9F, 0xB403F901}, {0x9F, 0xFFF2F7FF}, {0x9F, 0xF000BC03}, {0x9F, 0x0000F905}, {0x9F, 0x4A0D2101}, -{0x9F, 0x490D6011}, {0x9F, 0xE0076808}, {0x9F, 0x1C496801}, {0x9F, 0x2100D003}, {0x9F, 0x60114A08}, {0x9F, 0x1D00E007}, -{0x9F, 0x68094907}, {0x9F, 0x68124A07}, {0x9F, 0x42811889}, {0x9F, 0xBF00D8F0}, {0x9F, 0x4A052101}, {0x9F, 0xBF006011}, -{0x9F, 0x0000E7FE}, {0x9F, 0x20000C04}, {0x9F, 0x20000C10}, {0x9F, 0x20000C14}, {0x9F, 0x20000C00}, {0x9F, 0x4841B500}, -{0x9F, 0xB28069C0}, {0x9F, 0x0003381D}, {0x9F, 0xF8DFF000}, {0x9F, 0x290D1718}, {0x9F, 0x29292929}, {0x9F, 0x2523290F}, -{0x9F, 0x1B192929}, {0x9F, 0x2113111F}, {0x9F, 0x27291529}, {0x9F, 0x2001291D}, {0x9F, 0x2001BD00}, {0x9F, 0x2001E7FC}, -{0x9F, 0x2001E7FA}, {0x9F, 0x2000E7F8}, {0x9F, 0x2001E7F6}, {0x9F, 0x2001E7F4}, {0x9F, 0x2001E7F2}, {0x9F, 0x2001E7F0}, -{0x9F, 0x2001E7EE}, {0x9F, 0x2000E7EC}, {0x9F, 0x2001E7EA}, {0x9F, 0x2001E7E8}, {0x9F, 0x2001E7E6}, {0x9F, 0x2001E7E4}, -{0x9F, 0xB500E7E2}, {0x9F, 0x69C04827}, {0x9F, 0x381DB280}, {0x9F, 0xF0000003}, {0x9F, 0x1718F8AC}, {0x9F, 0x2929290D}, -{0x9F, 0x290F2929}, {0x9F, 0x29292523}, {0x9F, 0x111F1B19}, {0x9F, 0x15292113}, {0x9F, 0x291D2729}, {0x9F, 0xBD002001}, -{0x9F, 0xE7FC2001}, {0x9F, 0xE7FA2000}, {0x9F, 0xE7F82000}, {0x9F, 0xE7F62001}, {0x9F, 0xE7F42001}, {0x9F, 0xE7F22000}, -{0x9F, 0xE7F02000}, {0x9F, 0xE7EE2000}, {0x9F, 0xE7EC2000}, {0x9F, 0xE7EA2001}, {0x9F, 0xE7E82001}, {0x9F, 0xE7E62001}, -{0x9F, 0xE7E42001}, {0x9F, 0xE7E22000}, {0x9F, 0xF7FFB510}, {0x9F, 0x2800FFCA}, {0x9F, 0x480DD005}, {0x9F, 0x6048490D}, -{0x9F, 0x490D13C8}, {0x9F, 0xF7FF6188}, {0x9F, 0x2800FF8D}, {0x9F, 0x2001D009}, {0x9F, 0x07092105}, {0x9F, 0x02122207}, -{0x9F, 0x67C81889}, {0x9F, 0x490707C0}, {0x9F, 0xBD1060C8}, {0x9F, 0x49074806}, {0x9F, 0x47706008}, {0x9F, 0x10000040}, -{0x9F, 0xC007FFDF}, {0x9F, 0x40000500}, {0x9F, 0x40006C00}, {0x9F, 0x50000500}, {0x9F, 0x00F42400}, {0x9F, 0x20000800}, -{0x9F, 0x6802480A}, {0x9F, 0x430A210F}, {0x9F, 0x48096002}, {0x9F, 0x48094780}, {0x9F, 0xE7FE4700}, {0x9F, 0xE7FEE7FE}, -{0x9F, 0xE7FEE7FE}, {0x9F, 0x0000E7FE}, {0x9F, 0x49064805}, {0x9F, 0x4B064A04}, {0x9F, 0x00004770}, {0x9F, 0x40000524}, -{0x9F, 0x2000027D}, {0x9F, 0x200000C1}, {0x9F, 0x20000868}, {0x9F, 0x200008E8}, {0x9F, 0x20000868}, {0x9F, 0x47704770}, -{0x9F, 0x46754770}, {0x9F, 0xF822F000}, {0x9F, 0x000546AE}, {0x9F, 0x46534669}, {0x9F, 0x00C008C0}, {0x9F, 0xB0184685}, -{0x9F, 0xF7FFB520}, {0x9F, 0xBC60FFDD}, {0x9F, 0x08492700}, {0x9F, 0x260046B6}, {0x9F, 0xC5C0C5C0}, {0x9F, 0xC5C0C5C0}, -{0x9F, 0xC5C0C5C0}, {0x9F, 0xC5C0C5C0}, {0x9F, 0x00493D40}, {0x9F, 0x4770468D}, {0x9F, 0x46C04604}, {0x9F, 0x462046C0}, -{0x9F, 0xFEF9F7FF}, {0x9F, 0x47704800}, {0x9F, 0x20000804}, {0x9F, 0x20184901}, {0x9F, 0xE7FEBEAB}, {0x9F, 0x00020026}, -{0x9F, 0xB4304770}, {0x9F, 0x1E644674}, {0x9F, 0x1C647825}, {0x9F, 0xD30442AB}, {0x9F, 0x005B5D63}, {0x9F, 0xBC3018E3}, -{0x9F, 0x461D4718}, {0x9F, 0x0000E7F8}, {0x9F, 0x200003BC}, {0x9F, 0x20000800}, {0x9F, 0x00000004}, {0x9F, 0x20000104}, -{0x9F, 0x200003C0}, {0x9F, 0x20000804}, {0x9F, 0x000000E4}, {0x9F, 0x20000120}, {0xBD, 0x00F42400}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0x20000C00}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0x9F, 0xFBDF4041}, {0x9F, 0xD7CE8201}, -{0x9F, 0xFFFD0490}, {0x9F, 0xBF8F2840}, {0x9F, 0xFFFFFFFF}, {0x9F, 0x000073FF}, {0x9F, 0x2200F7DF}, {0x9F, 0x5000FEBF}, -{0x9F, 0xFFFB0000}, {0x9F, 0xFFFB0200}, {0x9F, 0xFF7B4C20}, {0x9F, 0xFFFA0A00}, {0x9F, 0x0102FFD7}, {0x9F, 0x0202F7DF}, -{0x9F, 0x0002FFDE}, {0xBD, 0x1048D6D7}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C00}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C04}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C10}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C14}, {0xA3, 0x23000012}, -{0xBB, 0x00000C30}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, -{0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001004}, {0xA3, 0x23000012}, -{0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, -{0xB1, 0x00000010}, {0x93, 0x200002D4}, {0x8B, 0x0001000F}, {0x93, 0x200008E8}, {0x8B, 0x00010011}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000ED30}, {0xA3, 0x23000002}, {0xBB, 0x0000001F}, {0x8B, 0xE000EDF0}, -{0xBB, 0xA05F0003}, {0xBB, 0xA05F0001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, -{0xA3, 0x23000002}, {0xBB, 0xA05F0003}, {0x9F, 0x00000000}, {0x9F, 0x01030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xB1, 0x00000010}, {0x8B, 0x00000000}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, -{0x8B, 0x00000001}, {0xB7, 0x00000000}, {0xBD, 0x00000001}, {0x8B, 0x00000002}, {0xB7, 0x00000000}, {0xBD, 0x20000C00}, -{0x8B, 0x00000003}, {0xB7, 0x00000000}, {0xBD, 0x20000868}, {0x8B, 0x00000004}, {0xB7, 0x00000000}, {0xBD, 0x200003BC}, -{0x8B, 0x00000005}, {0xB7, 0x00000000}, {0xBD, 0x20000804}, {0x8B, 0x00000006}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, -{0x8B, 0x00000007}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x8B, 0x00000008}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x00000009}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000A}, {0xB7, 0x00000000}, {0xBD, 0x200003BC}, -{0x8B, 0x0000000B}, {0xB7, 0x00000000}, {0xBD, 0x200003BC}, {0x8B, 0x0000000C}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x0000000E}, {0xB7, 0x00000000}, {0xBD, 0x20000157}, {0x8B, 0x0000000F}, {0xB7, 0x00000000}, {0xBD, 0x2000019C}, -{0x8B, 0x00000010}, {0xB7, 0x00000000}, {0xBD, 0x01000000}, {0x8B, 0x00000011}, {0xB7, 0x00000000}, {0xBD, 0x200008E8}, -{0x8B, 0x00000012}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFC}, {0x8B, 0x00000014}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C00}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0x9F, 0x00000001}, -{0x9F, 0x00000000}, {0x9F, 0xFFFD0490}, {0x9F, 0xBF8F2840}, {0x9F, 0x00000000}, {0x9F, 0x00000C30}, {0x9F, 0x2200F7DF}, -{0x9F, 0x5000FEBF}, {0x9F, 0xFFFB0000}, {0x9F, 0xFFFB0200}, {0x9F, 0xFF7B4C20}, {0x9F, 0xFFFA0A00}, {0x9F, 0x0102FFD7}, -{0x9F, 0x0202F7DF}, {0x9F, 0x0002FFDE}, {0xBD, 0x1048D6D7}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, -{0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000010}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000400}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000014}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000100}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, -{0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x1000002C}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10001000}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, -{0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0x9F, 0xFFFFFFFF}, {0xBD, 0xFFFFFFFF}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x40000608}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x40000600}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x40000604}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000002}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E508}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E508}, {0xA3, 0x23000012}, {0xBB, 0x00000400}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E508}, {0xA3, 0x23000012}, {0xBB, 0x00000800}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E508}, {0xA3, 0x23000012}, {0xBB, 0x00000C00}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000000}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x200008E8}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000000}, {0xA3, 0x23000012}, {0xBB, 0x200008E8}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xBB, 0xA05F0003}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, {0xBB, 0x01000001}, {0xBD, 0x00000000}, -{0x81, 0x0000001E}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000ED0C}, {0xA3, 0x23000012}, {0xBB, 0x05FA0004}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x03030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xBB, 0xA05F0003}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, {0xBB, 0x01000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x00030003}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xB1, 0x00000010}, -{0x8B, 0x00000000}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000001}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x00000002}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000003}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x00000004}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000005}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x00000006}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000007}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x00000008}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000009}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x0000000A}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000B}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x0000000C}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000E}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, -{0x8B, 0x0000000F}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFE}, {0x8B, 0x00000010}, {0xB7, 0x00000000}, {0xBD, 0xC1000000}, -{0x8B, 0x00000011}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFC}, {0x8B, 0x00000012}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFC}, -{0x8B, 0x00000014}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0002000}, -{0xA3, 0x23000012}, {0xBB, 0x00000003}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x01000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001000}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x20000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001000}, -{0xA3, 0x23000012}, {0xBB, 0x20000001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, -{0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000010}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000400}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x10000014}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000100}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x40000524}, -{0xA3, 0x23000012}, {0xBB, 0x0000000F}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E504}, -{0xA3, 0x23000012}, {0xBB, 0x00000001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x4001E400}, -{0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000000}, -{0xA3, 0x23000012}, {0xBB, 0x200008E8}, {0xBB, 0x20000341}, {0xBB, 0x20000353}, {0xBB, 0x20000355}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x20000357}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x20000359}, {0xBB, 0x2000035B}, {0xBB, 0x2000035D}, -{0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x00000000}, {0xBB, 0x2000035D}, -{0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, -{0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBD, 0x00000000}, {0xB1, 0x00000000}, {0x8B, 0x20000080}, -{0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, -{0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x2000035D}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0xF802F000}, {0xBB, 0xF840F000}, -{0xBB, 0xC830A00C}, {0xBB, 0x18243808}, {0xBB, 0x46A2182D}, {0xBB, 0x46AB1E67}, {0xBB, 0x465D4654}, {0xBB, 0xD10142AC}, -{0xBB, 0xF832F000}, {0xBB, 0x3E0F467E}, {0xBB, 0x46B6CC0F}, {0xBB, 0x42332601}, {0xBB, 0x1AFBD000}, {0xBB, 0x46AB46A2}, -{0xBB, 0x47184333}, {0xBB, 0x00000368}, {0xBB, 0x00000388}, {0xBB, 0xD3023A10}, {0xBB, 0xC178C878}, {0xBB, 0x0752D8FA}, -{0xBB, 0xC830D301}, {0xBB, 0xD501C130}, {0xBB, 0x600C6804}, {0xBB, 0x00004770}, {0xBB, 0x24002300}, {0xBB, 0x26002500}, -{0xBB, 0xD3013A10}, {0xBB, 0xD8FBC178}, {0xBB, 0xD3000752}, {0xBB, 0xD500C130}, {0xBB, 0x4770600B}, {0xBB, 0x46C0B51F}, -{0xBB, 0xBD1F46C0}, {0xBB, 0xBD10B510}, {0xBB, 0xF94CF000}, {0xBB, 0xF7FF4611}, {0xBB, 0xF000FFF5}, {0xBB, 0xF000F825}, -{0xBB, 0xB403F964}, {0xBB, 0xFFF2F7FF}, {0xBB, 0xF000BC03}, {0xBB, 0x0000F969}, {0xBB, 0x4605B570}, {0xBB, 0x4616460C}, -{0xBB, 0xCC0FE002}, {0xBB, 0x3E10C50F}, {0xBB, 0xD2FA2E10}, {0xBB, 0xD3022E08}, {0xBB, 0xC503CC03}, {0xBB, 0x2E043E08}, -{0xBB, 0xCC01D307}, {0xBB, 0x1F36C501}, {0xBB, 0x7821E003}, {0xBB, 0x1C647029}, {0xBB, 0x1E761C6D}, {0xBB, 0xBD70D2F9}, -{0xBB, 0x49162001}, {0xBB, 0x49166008}, {0xBB, 0xBF006048}, {0xBB, 0x68004815}, {0xBB, 0xD0FB2800}, {0xBB, 0x68024814}, -{0xBB, 0x48154914}, {0xBB, 0xF7FF6800}, {0xBB, 0x2000FFD3}, {0xBB, 0x6048490E}, {0xBB, 0x480EBF00}, {0xBB, 0x28006800}, -{0xBB, 0x4810D0FB}, {0xBB, 0x28016980}, {0xBB, 0x480BD10B}, {0xBB, 0x490B6802}, {0xBB, 0x6800480B}, {0xBB, 0xF8CEF000}, -{0xBB, 0xD0022800}, {0xBB, 0x49032000}, {0xBB, 0x20016008}, {0xBB, 0x60084908}, {0xBB, 0xE7FEBF00}, {0xBB, 0x20000C04}, -{0xBB, 0x4001E500}, {0xBB, 0x4001E400}, {0xBB, 0x20000C14}, {0xBB, 0x20001000}, {0xBB, 0x20000C10}, {0xBB, 0x20000C00}, -{0xBB, 0x20000C00}, {0xBB, 0x4841B500}, {0xBB, 0xB28069C0}, {0xBB, 0x0003381D}, {0xBB, 0xF90DF000}, {0xBB, 0x290D1718}, -{0xBB, 0x29292929}, {0xBB, 0x2523290F}, {0xBB, 0x1B192929}, {0xBB, 0x2113111F}, {0xBB, 0x27291529}, {0xBB, 0x2001291D}, -{0xBB, 0x2001BD00}, {0xBB, 0x2001E7FC}, {0xBB, 0x2001E7FA}, {0xBB, 0x2000E7F8}, {0xBB, 0x2001E7F6}, {0xBB, 0x2001E7F4}, -{0xBB, 0x2001E7F2}, {0xBB, 0x2001E7F0}, {0xBB, 0x2001E7EE}, {0xBB, 0x2000E7EC}, {0xBB, 0x2001E7EA}, {0xBB, 0x2001E7E8}, -{0xBB, 0x2001E7E6}, {0xBB, 0x2001E7E4}, {0xBB, 0xB500E7E2}, {0xBB, 0x69C04827}, {0xBB, 0x381DB280}, {0xBB, 0xF0000003}, -{0xBB, 0x1718F8DA}, {0xBB, 0x2929290D}, {0xBB, 0x290F2929}, {0xBB, 0x29292523}, {0xBB, 0x111F1B19}, {0xBB, 0x15292113}, -{0xBB, 0x291D2729}, {0xBB, 0xBD002001}, {0xBB, 0xE7FC2001}, {0xBB, 0xE7FA2000}, {0xBB, 0xE7F82000}, {0xBB, 0xE7F62001}, -{0xBB, 0xE7F42001}, {0xBB, 0xE7F22000}, {0xBB, 0xE7F02000}, {0xBB, 0xE7EE2000}, {0xBB, 0xE7EC2000}, {0xBB, 0xE7EA2001}, -{0xBB, 0xE7E82001}, {0xBB, 0xE7E62001}, {0xBB, 0xE7E42001}, {0xBB, 0xE7E22000}, {0xBB, 0xF7FFB510}, {0xBB, 0x2800FFCA}, -{0xBB, 0x480DD005}, {0xBB, 0x6048490D}, {0xBB, 0x490D13C8}, {0xBB, 0xF7FF6188}, {0xBB, 0x2800FF8D}, {0xBB, 0x2001D009}, -{0xBB, 0x07092105}, {0xBB, 0x02122207}, {0xBB, 0x67C81889}, {0xBB, 0x490707C0}, {0xBB, 0xBD1060C8}, {0xBB, 0x49074806}, -{0xBB, 0x47706008}, {0xBB, 0x10000040}, {0xBB, 0xC007FFDF}, {0xBB, 0x40000500}, {0xBB, 0x40006C00}, {0xBB, 0x50000500}, -{0xBB, 0x00F42400}, {0xBB, 0x20000800}, {0xBB, 0x6802480A}, {0xBB, 0x430A210F}, {0xBB, 0x48096002}, {0xBB, 0x48094780}, -{0xBB, 0xE7FE4700}, {0xBB, 0xE7FEE7FE}, {0xBB, 0xE7FEE7FE}, {0xBB, 0x0000E7FE}, {0xBB, 0x49064805}, {0xBB, 0x4B064A04}, -{0xBB, 0x00004770}, {0xBB, 0x40000524}, {0xBB, 0x200002E9}, {0xBB, 0x200000C1}, {0xBB, 0x20000868}, {0xBB, 0x200008E8}, -{0xBB, 0x20000868}, {0xBB, 0xB5104603}, {0xBB, 0x079B430B}, {0xBB, 0x2A04D10F}, {0xBB, 0xC808D30D}, {0xBB, 0x1F12C910}, -{0xBB, 0xD0F842A3}, {0xBB, 0xBA21BA18}, {0xBB, 0xD9014288}, {0xBB, 0xBD102001}, {0xBB, 0x43C02000}, {0xBB, 0x2A00BD10}, -{0xBB, 0x07D3D003}, {0xBB, 0x1C52D003}, {0xBB, 0x2000E007}, {0xBB, 0x7803BD10}, {0xBB, 0x1C40780C}, {0xBB, 0x1B1B1C49}, -{0xBB, 0x7803D107}, {0xBB, 0x1C40780C}, {0xBB, 0x1B1B1C49}, {0xBB, 0x1E92D101}, {0xBB, 0x4618D1F1}, {0xBB, 0x4770BD10}, -{0xBB, 0x47704770}, {0xBB, 0xF0004675}, {0xBB, 0x46AEF823}, {0xBB, 0x46690005}, {0xBB, 0x08C04653}, {0xBB, 0x468500C0}, -{0xBB, 0xB520B018}, {0xBB, 0xFFB0F7FF}, {0xBD, 0x00000000}, {0xB1, 0x00000000}, {0x8B, 0x20000400}, {0xBB, 0x2700BC60}, -{0xBB, 0x46B60849}, {0xBB, 0xC5C02600}, {0xBB, 0xC5C0C5C0}, {0xBB, 0xC5C0C5C0}, {0xBB, 0xC5C0C5C0}, {0xBB, 0x3D40C5C0}, -{0xBB, 0x468D0049}, {0xBB, 0x46044770}, {0xBB, 0x46C046C0}, {0xBB, 0xF7FF4620}, {0xBB, 0x0000FE96}, {0xBB, 0x47704800}, -{0xBB, 0x20000804}, {0xBB, 0x20184901}, {0xBB, 0xE7FEBEAB}, {0xBB, 0x00020026}, {0xBB, 0xB4304770}, {0xBB, 0x1E644674}, -{0xBB, 0x1C647825}, {0xBB, 0xD30442AB}, {0xBB, 0x005B5D63}, {0xBB, 0xBC3018E3}, {0xBB, 0x461D4718}, {0xBB, 0x0000E7F8}, -{0xBB, 0x20000484}, {0xBB, 0x20000800}, {0xBB, 0x00000004}, {0xBB, 0x20000104}, {0xBB, 0x20000488}, {0xBB, 0x20000804}, -{0xBB, 0x000000E4}, {0xBB, 0x20000120}, {0xBB, 0x00F42400}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x20000C10}, {0xA3, 0x23000012}, {0xBB, 0xFFFFFFFF}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E504}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x4001E400}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00000001}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x20000000}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0x9F, 0x200008E8}, {0x9F, 0x20000341}, {0x9F, 0x20000353}, -{0x9F, 0x20000355}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, -{0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x20000357}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x20000359}, -{0x9F, 0x2000035B}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, -{0x9F, 0x00000000}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, -{0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, -{0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, -{0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x2000035D}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, -{0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0x00000000}, {0x9F, 0xF802F000}, {0x9F, 0xF840F000}, {0x9F, 0xC830A00C}, -{0x9F, 0x18243808}, {0x9F, 0x46A2182D}, {0x9F, 0x46AB1E67}, {0x9F, 0x465D4654}, {0x9F, 0xD10142AC}, {0x9F, 0xF832F000}, -{0x9F, 0x3E0F467E}, {0x9F, 0x46B6CC0F}, {0x9F, 0x42332601}, {0x9F, 0x1AFBD000}, {0x9F, 0x46AB46A2}, {0x9F, 0x47184333}, -{0x9F, 0x00000368}, {0x9F, 0x00000388}, {0x9F, 0xD3023A10}, {0x9F, 0xC178C878}, {0x9F, 0x0752D8FA}, {0x9F, 0xC830D301}, -{0x9F, 0xD501C130}, {0x9F, 0x600C6804}, {0x9F, 0x00004770}, {0x9F, 0x24002300}, {0x9F, 0x26002500}, {0x9F, 0xD3013A10}, -{0x9F, 0xD8FBC178}, {0x9F, 0xD3000752}, {0x9F, 0xD500C130}, {0x9F, 0x4770600B}, {0x9F, 0x46C0B51F}, {0x9F, 0xBD1F46C0}, -{0x9F, 0xBD10B510}, {0x9F, 0xF94CF000}, {0x9F, 0xF7FF4611}, {0x9F, 0xF000FFF5}, {0x9F, 0xF000F825}, {0x9F, 0xB403F964}, -{0x9F, 0xFFF2F7FF}, {0x9F, 0xF000BC03}, {0x9F, 0x0000F969}, {0x9F, 0x4605B570}, {0x9F, 0x4616460C}, {0x9F, 0xCC0FE002}, -{0x9F, 0x3E10C50F}, {0x9F, 0xD2FA2E10}, {0x9F, 0xD3022E08}, {0x9F, 0xC503CC03}, {0x9F, 0x2E043E08}, {0x9F, 0xCC01D307}, -{0x9F, 0x1F36C501}, {0x9F, 0x7821E003}, {0x9F, 0x1C647029}, {0x9F, 0x1E761C6D}, {0x9F, 0xBD70D2F9}, {0x9F, 0x49162001}, -{0x9F, 0x49166008}, {0x9F, 0xBF006048}, {0x9F, 0x68004815}, {0x9F, 0xD0FB2800}, {0x9F, 0x68024814}, {0x9F, 0x48154914}, -{0x9F, 0xF7FF6800}, {0x9F, 0x2000FFD3}, {0x9F, 0x6048490E}, {0x9F, 0x480EBF00}, {0x9F, 0x28006800}, {0x9F, 0x4810D0FB}, -{0x9F, 0x28016980}, {0x9F, 0x480BD10B}, {0x9F, 0x490B6802}, {0x9F, 0x6800480B}, {0x9F, 0xF8CEF000}, {0x9F, 0xD0022800}, -{0x9F, 0x49032000}, {0x9F, 0x20016008}, {0x9F, 0x60084908}, {0x9F, 0xE7FEBF00}, {0x9F, 0x20000C04}, {0x9F, 0x4001E500}, -{0x9F, 0x4001E400}, {0x9F, 0x20000C14}, {0x9F, 0x20001000}, {0x9F, 0x20000C10}, {0x9F, 0x20000C00}, {0x9F, 0x20000C00}, -{0x9F, 0x4841B500}, {0x9F, 0xB28069C0}, {0x9F, 0x0003381D}, {0x9F, 0xF90DF000}, {0x9F, 0x290D1718}, {0x9F, 0x29292929}, -{0x9F, 0x2523290F}, {0x9F, 0x1B192929}, {0x9F, 0x2113111F}, {0x9F, 0x27291529}, {0x9F, 0x2001291D}, {0x9F, 0x2001BD00}, -{0x9F, 0x2001E7FC}, {0x9F, 0x2001E7FA}, {0x9F, 0x2000E7F8}, {0x9F, 0x2001E7F6}, {0x9F, 0x2001E7F4}, {0x9F, 0x2001E7F2}, -{0x9F, 0x2001E7F0}, {0x9F, 0x2001E7EE}, {0x9F, 0x2000E7EC}, {0x9F, 0x2001E7EA}, {0x9F, 0x2001E7E8}, {0x9F, 0x2001E7E6}, -{0x9F, 0x2001E7E4}, {0x9F, 0xB500E7E2}, {0x9F, 0x69C04827}, {0x9F, 0x381DB280}, {0x9F, 0xF0000003}, {0x9F, 0x1718F8DA}, -{0x9F, 0x2929290D}, {0x9F, 0x290F2929}, {0x9F, 0x29292523}, {0x9F, 0x111F1B19}, {0x9F, 0x15292113}, {0x9F, 0x291D2729}, -{0x9F, 0xBD002001}, {0x9F, 0xE7FC2001}, {0x9F, 0xE7FA2000}, {0x9F, 0xE7F82000}, {0x9F, 0xE7F62001}, {0x9F, 0xE7F42001}, -{0x9F, 0xE7F22000}, {0x9F, 0xE7F02000}, {0x9F, 0xE7EE2000}, {0x9F, 0xE7EC2000}, {0x9F, 0xE7EA2001}, {0x9F, 0xE7E82001}, -{0x9F, 0xE7E62001}, {0x9F, 0xE7E42001}, {0x9F, 0xE7E22000}, {0x9F, 0xF7FFB510}, {0x9F, 0x2800FFCA}, {0x9F, 0x480DD005}, -{0x9F, 0x6048490D}, {0x9F, 0x490D13C8}, {0x9F, 0xF7FF6188}, {0x9F, 0x2800FF8D}, {0x9F, 0x2001D009}, {0x9F, 0x07092105}, -{0x9F, 0x02122207}, {0x9F, 0x67C81889}, {0x9F, 0x490707C0}, {0x9F, 0xBD1060C8}, {0x9F, 0x49074806}, {0x9F, 0x47706008}, -{0x9F, 0x10000040}, {0x9F, 0xC007FFDF}, {0x9F, 0x40000500}, {0x9F, 0x40006C00}, {0x9F, 0x50000500}, {0x9F, 0x00F42400}, -{0x9F, 0x20000800}, {0x9F, 0x6802480A}, {0x9F, 0x430A210F}, {0x9F, 0x48096002}, {0x9F, 0x48094780}, {0x9F, 0xE7FE4700}, -{0x9F, 0xE7FEE7FE}, {0x9F, 0xE7FEE7FE}, {0x9F, 0x0000E7FE}, {0x9F, 0x49064805}, {0x9F, 0x4B064A04}, {0x9F, 0x00004770}, -{0x9F, 0x40000524}, {0x9F, 0x200002E9}, {0x9F, 0x200000C1}, {0x9F, 0x20000868}, {0x9F, 0x200008E8}, {0x9F, 0x20000868}, -{0x9F, 0xB5104603}, {0x9F, 0x079B430B}, {0x9F, 0x2A04D10F}, {0x9F, 0xC808D30D}, {0x9F, 0x1F12C910}, {0x9F, 0xD0F842A3}, -{0x9F, 0xBA21BA18}, {0x9F, 0xD9014288}, {0x9F, 0xBD102001}, {0x9F, 0x43C02000}, {0x9F, 0x2A00BD10}, {0x9F, 0x07D3D003}, -{0x9F, 0x1C52D003}, {0x9F, 0x2000E007}, {0x9F, 0x7803BD10}, {0x9F, 0x1C40780C}, {0x9F, 0x1B1B1C49}, {0x9F, 0x7803D107}, -{0x9F, 0x1C40780C}, {0x9F, 0x1B1B1C49}, {0x9F, 0x1E92D101}, {0x9F, 0x4618D1F1}, {0x9F, 0x4770BD10}, {0x9F, 0x47704770}, -{0x9F, 0xF0004675}, {0x9F, 0x46AEF823}, {0x9F, 0x46690005}, {0x9F, 0x08C04653}, {0x9F, 0x468500C0}, {0x9F, 0xB520B018}, -{0xBD, 0xFFB0F7FF}, {0xB1, 0x00000000}, {0x8B, 0x20000400}, {0x9F, 0x00000000}, {0x9F, 0x2700BC60}, {0x9F, 0x46B60849}, -{0x9F, 0xC5C02600}, {0x9F, 0xC5C0C5C0}, {0x9F, 0xC5C0C5C0}, {0x9F, 0xC5C0C5C0}, {0x9F, 0x3D40C5C0}, {0x9F, 0x468D0049}, -{0x9F, 0x46044770}, {0x9F, 0x46C046C0}, {0x9F, 0xF7FF4620}, {0x9F, 0x0000FE96}, {0x9F, 0x47704800}, {0x9F, 0x20000804}, -{0x9F, 0x20184901}, {0x9F, 0xE7FEBEAB}, {0x9F, 0x00020026}, {0x9F, 0xB4304770}, {0x9F, 0x1E644674}, {0x9F, 0x1C647825}, -{0x9F, 0xD30442AB}, {0x9F, 0x005B5D63}, {0x9F, 0xBC3018E3}, {0x9F, 0x461D4718}, {0x9F, 0x0000E7F8}, {0x9F, 0x20000484}, -{0x9F, 0x20000800}, {0x9F, 0x00000004}, {0x9F, 0x20000104}, {0x9F, 0x20000488}, {0x9F, 0x20000804}, {0x9F, 0x000000E4}, -{0x9F, 0x20000120}, {0x9F, 0x00F42400}, {0x9F, 0xFFFF8000}, {0x9F, 0xFE7F0000}, {0x9F, 0x0026FFFF}, {0x9F, 0x8009EFEF}, -{0x9F, 0x00007FFF}, {0x9F, 0x0080FFFF}, {0x9F, 0xFFDB0008}, {0x9F, 0xFDFA3080}, {0x9F, 0x7B760400}, {0x9F, 0xFFFF0404}, -{0x9F, 0x02107EBF}, {0x9F, 0x0000AF5F}, {0x9F, 0x0008BC93}, {0xBD, 0x1210FFDF}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x20000C00}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0x9F, 0x00000001}, {0x9F, 0x00000000}, {0x9F, 0xFFFD0490}, -{0x9F, 0xBF8F2840}, {0x9F, 0xFFFFFFFF}, {0x9F, 0x00000C30}, {0x9F, 0x2200F7DF}, {0x9F, 0x5000FEBF}, {0x9F, 0xFFFB0000}, -{0x9F, 0xFFFB0200}, {0x9F, 0xFF7B4C20}, {0x9F, 0xFFFA0A00}, {0x9F, 0x0102FFD7}, {0x9F, 0x0202F7DF}, {0x9F, 0x0002FFDE}, -{0xBD, 0x1048D6D7}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C00}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C04}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C10}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C14}, {0xA3, 0x23000012}, {0xBB, 0x00000C30}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C18}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20001000}, {0xA3, 0x23000012}, {0xBB, 0x20004000}, -{0xBB, 0x00000439}, {0xBB, 0x00000475}, {0xBB, 0x00000477}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000479}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x0000047B}, {0xBB, 0x0000047D}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, -{0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x00000000}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, -{0xBB, 0x0000047F}, {0xBB, 0x00000199}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, -{0xBB, 0x0000047F}, {0xBD, 0x00000000}, {0xB1, 0x00000000}, {0x8B, 0x20001080}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, -{0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x0000047F}, -{0xBB, 0x0000047F}, {0xBB, 0x0000047F}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x4C06B510}, {0xBB, 0x2B007823}, {0xBB, 0x4B05D107}, {0xBB, 0xD0022B00}, -{0xBB, 0xE0004804}, {0xBB, 0x2301BF00}, {0xBB, 0xBD107023}, {0xBB, 0x2000044C}, {0xBB, 0x00000000}, {0xBB, 0x000007D8}, -{0xBB, 0x4B08B508}, {0xBB, 0xD0032B00}, {0xBB, 0x49084807}, {0xBB, 0xBF00E000}, {0xBB, 0x68034807}, {0xBB, 0xD0032B00}, -{0xBB, 0x2B004B06}, {0xBB, 0x4798D000}, {0xBB, 0x46C0BD08}, {0xBB, 0x00000000}, {0xBB, 0x000007D8}, {0xBB, 0x20000450}, -{0xBB, 0x20000448}, {0xBB, 0x00000000}, {0xBB, 0x2B004B16}, {0xBB, 0x4B14D100}, {0xBB, 0x2240469D}, {0xBB, 0x1A9A0292}, -{0xBB, 0x21004692}, {0xBB, 0x460F468B}, {0xBB, 0x4A144813}, {0xBB, 0xF0001A12}, {0xBB, 0x4B0FF9D3}, {0xBB, 0xD0002B00}, -{0xBB, 0x4B0E4798}, {0xBB, 0xD0002B00}, {0xBB, 0x20004798}, {0xBB, 0x00042100}, {0xBB, 0x480D000D}, {0xBB, 0xD0022800}, -{0xBB, 0xF000480C}, {0xBB, 0xF000FAA7}, {0xBB, 0x0020F99B}, {0xBB, 0xF0000029}, {0xBB, 0xF000F857}, {0xBB, 0x46C0F985}, -{0xBB, 0x00080000}, {0xBB, 0x20004000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x2000044C}, {0xBB, 0x2000046C}, -{0xBB, 0x000006B5}, {0xBB, 0x000006C5}, {0xBB, 0x22A24B1C}, {0xBB, 0x58990052}, {0xBB, 0x2900B510}, {0xBB, 0x21C1D021}, -{0xBB, 0x58590089}, {0xBB, 0xD51C0388}, {0xBB, 0x50992100}, {0xBB, 0x58994A16}, {0xBB, 0x31FF3101}, {0xBB, 0x4B155099}, -{0xBB, 0x23FF781A}, {0xBB, 0xD0114393}, {0xBB, 0x1C194A13}, {0xBB, 0x480F6013}, {0xBB, 0x4C0F4B12}, {0xBB, 0x5904781A}, -{0xBB, 0x2A001909}, {0xBB, 0x24A8D012}, {0xBB, 0x510100E4}, {0xBB, 0x404A2101}, {0xBB, 0xBD10701A}, {0xBB, 0x22084B0A}, -{0xBB, 0x4806601A}, {0xBB, 0x4C064B09}, {0xBB, 0x5904781A}, {0xBB, 0x19092108}, {0xBB, 0xD1EC2A00}, {0xBB, 0x00E424A9}, -{0xBB, 0xE7EB5101}, {0xBB, 0x4000A000}, {0xBB, 0x00000544}, {0xBB, 0x50000510}, {0xBB, 0x20000004}, {0xBB, 0x20000468}, -{0xBB, 0x21E023A0}, {0xBB, 0x220005DB}, {0xBB, 0x505A00C9}, {0xBB, 0x505A4945}, {0xBB, 0x00C921E1}, {0xBB, 0x4944505A}, -{0xBB, 0x21E2505A}, {0xBB, 0x505A00C9}, {0xBB, 0x505A4942}, {0xBB, 0x00C921E3}, {0xBB, 0x4941505A}, {0xBB, 0x22E4505A}, -{0xBB, 0x00D22101}, {0xBB, 0x4A3F5099}, {0xBB, 0x701121FF}, {0xBB, 0x21804A3E}, {0xBB, 0x50990049}, {0xBB, 0x4A3E493D}, -{0xBB, 0x00DB23A2}, {0xBB, 0x46C050D1}, {0xBB, 0x46C046C0}, {0xBB, 0x22014B3A}, {0xBB, 0x493A601A}, {0xBB, 0x00D222A2}, -{0xBB, 0x46C05099}, {0xBB, 0x46C046C0}, {0xBB, 0x49384B37}, {0xBB, 0x00D222A2}, {0xBB, 0x4A335099}, {0xBB, 0x48374936}, -{0xBB, 0x21A3505A}, {0xBB, 0x505800C9}, {0xBB, 0x48364935}, {0xBB, 0x21A4505A}, {0xBB, 0x505800C9}, {0xBB, 0x505A4934}, -{0xBB, 0x210722A0}, {0xBB, 0x509900D2}, {0xBB, 0x22802380}, {0xBB, 0x210005DB}, {0xBB, 0x50990052}, {0xBB, 0x60192101}, -{0xBB, 0x29005899}, {0xBB, 0x4B2DD0FC}, {0xBB, 0x2200492D}, {0xBB, 0x21A1505A}, {0xBB, 0x505A00C9}, {0xBB, 0x00D222A2}, -{0xBB, 0x50992106}, {0xBB, 0x60DA2201}, {0xBB, 0x781A4B28}, {0xBB, 0x439323FF}, {0xBB, 0x4B27D122}, {0xBB, 0x601A2208}, -{0xBB, 0x00522284}, {0xBB, 0x21A84B21}, {0xBB, 0x505A00C9}, {0xBB, 0x21804A23}, {0xBB, 0x50990049}, {0xBB, 0x210022A9}, -{0xBB, 0x509900D2}, {0xBB, 0x22C12180}, {0xBB, 0x00920289}, {0xBB, 0x23805099}, {0xBB, 0x05DB2201}, {0xBB, 0x4B1C679A}, -{0xBB, 0x00D22280}, {0xBB, 0xB662601A}, {0xBB, 0x22014B14}, {0xBB, 0xE7FE601A}, {0xBB, 0x60134A15}, {0xBB, 0x32FF1C5A}, -{0xBB, 0x46C0E7DC}, {0xBB, 0x00000704}, {0xBB, 0x0000070C}, {0xBB, 0x00000714}, {0xBB, 0x0000071C}, {0xBB, 0x5000050C}, -{0xBB, 0x0000050C}, {0xBB, 0x00021F03}, {0xBB, 0x40006000}, {0xBB, 0x00030803}, {0xBB, 0x4001F000}, {0xBB, 0x4000A140}, -{0xBB, 0x00000514}, {0xBB, 0x4000A144}, {0xBB, 0x0000051C}, {0xBB, 0x4000A148}, {0xBB, 0x00000524}, {0xBB, 0x4000A000}, -{0xBB, 0x00000504}, {0xBB, 0x50000510}, {0xBB, 0x20000004}, {0xBB, 0x00000544}, {0xBB, 0xE000E100}, {0xBB, 0x4B024A01}, -{0xBB, 0x4770601A}, {0xBB, 0x00F42400}, {0xBB, 0x20000008}, {0xBB, 0x781B4B1B}, {0xBB, 0xD0002B01}, {0xBB, 0x4B1A4770}, -{0xBB, 0x071A681B}, {0xBB, 0x4A19D1FA}, {0xBB, 0x681223F0}, {0xBB, 0xD003401A}, {0xBB, 0xD0012A10}, {0xBB, 0xD1032A30}, -{0xBB, 0x68124A15}, {0xBB, 0xD010421A}, {0xBB, 0x23F04A12}, {0xBB, 0x401A6812}, {0xBB, 0xD1E72A40}, {0xBB, 0x68124A10}, -{0xBB, 0xD1E3421A}, {0xBB, 0x228023C1}, {0xBB, 0x00DB2101}, {0xBB, 0x50D105D2}, {0xBB, 0x4A0CE7DC}, {0xBB, 0x601A4B0C}, -{0xBD, 0x00000000}, {0xB1, 0x00000000}, {0x8B, 0x20001400}, {0xBB, 0x22804B0C}, {0xBB, 0x601A0212}, {0xBB, 0x781B4B04}, -{0xBB, 0xD1D12B01}, {0xBB, 0x681B4B03}, {0xBB, 0xD0DF071A}, {0xBB, 0x46C0E7CC}, {0xBB, 0xF0000FE0}, {0xBB, 0xF0000FE4}, -{0xBB, 0xF0000FE8}, {0xBB, 0xF0000FEC}, {0xBB, 0xC007FFDF}, {0xBB, 0x40000504}, {0xBB, 0x40006C18}, {0xBB, 0x68024808}, -{0xBB, 0x430A2103}, {0xBB, 0x49076002}, {0xBB, 0x4B084A07}, {0xBB, 0xDD031A9B}, {0xBB, 0x58C83B04}, {0xBB, 0xDCFB50D0}, -{0xBB, 0x47804805}, {0xBB, 0x47004805}, {0xBB, 0x40000524}, {0xBB, 0x000007E4}, {0xBB, 0x20000000}, {0xBB, 0x2000044C}, -{0xBB, 0x000003AD}, {0xBB, 0x00000121}, {0xBB, 0xE7FEE7FE}, {0xBB, 0xE7FEE7FE}, {0xBB, 0xE7FEE7FE}, {0xBB, 0x2100B510}, -{0xBB, 0xF0001C04}, {0xBB, 0x4B04F889}, {0xBB, 0x6BC36818}, {0xBB, 0xD0002B00}, {0xBB, 0x1C204798}, {0xBB, 0xF98CF000}, -{0xBB, 0x000007D4}, {0xBB, 0x4E0DB570}, {0xBB, 0x24004D0D}, {0xBB, 0x10AD1BAD}, {0xBB, 0x00A3D005}, {0xBB, 0x340158F3}, -{0xBB, 0x42A54798}, {0xBB, 0xF000D1F9}, {0xBB, 0x4E08F97D}, {0xBB, 0x24004D08}, {0xBB, 0x10AD1BAD}, {0xBB, 0x00A3D005}, -{0xBB, 0x340158F3}, {0xBB, 0x42A54798}, {0xBB, 0xBD70D1F9}, {0xBB, 0x2000043C}, {0xBB, 0x2000043C}, {0xBB, 0x2000043C}, -{0xBB, 0x20000444}, {0xBB, 0x0783B5F0}, {0xBB, 0x1E54D046}, {0xBB, 0xD0422A00}, {0xBB, 0x1C03B2CE}, {0xBB, 0xE0032503}, -{0xBB, 0x2C001E62}, {0xBB, 0x1C14D03B}, {0xBB, 0x1E5A3301}, {0xBB, 0x422B7016}, {0xBB, 0x2C03D1F6}, {0xBB, 0x25FFD92B}, -{0xBB, 0x022A400D}, {0xBB, 0x042A4315}, {0xBB, 0x2C0F4315}, {0xBB, 0x1C27D915}, {0xBB, 0x093F3F10}, {0xBB, 0x013A1C1E}, -{0xBB, 0x18B63610}, {0xBB, 0x60151C1A}, {0xBB, 0x60956055}, {0xBB, 0x321060D5}, {0xBB, 0xD1F842B2}, {0xBB, 0x013F3701}, -{0xBB, 0x19DB220F}, {0xBB, 0x2C034014}, {0xBB, 0x1F27D90D}, {0xBB, 0x00BA08BF}, {0xBB, 0x18B61D1E}, {0xBB, 0xC2201C1A}, -{0xBB, 0xD1FC42B2}, {0xBB, 0x00BF3701}, {0xBB, 0x19DB2203}, {0xBB, 0x2C004014}, {0xBB, 0x191CD005}, {0xBB, 0x7019B2C9}, -{0xBB, 0x42A33301}, {0xBB, 0xBDF0D1FB}, {0xBB, 0x1C031C14}, {0xBB, 0x46C0E7C5}, {0xBB, 0x4B03B508}, {0xBB, 0xD0022B00}, -{0xBB, 0xF0004802}, {0xBB, 0xBD08F891}, {0xBB, 0x00000000}, {0xBB, 0x000006C5}, {0xBB, 0x465FB5F0}, {0xBB, 0x464D4656}, -{0xBB, 0xB4F04644}, {0xBB, 0xB0854B40}, {0xBB, 0x9002681B}, {0xBB, 0x33499301}, {0xBB, 0x930333FF}, {0xBB, 0x98011C0F}, -{0xBB, 0x004921A4}, {0xBB, 0x46905842}, {0xBB, 0xD04A2A00}, {0xBB, 0x46819803}, {0xBB, 0x684E4641}, {0xBB, 0xD4411E74}, -{0xBB, 0x00A34645}, {0xBB, 0x18ED3588}, {0xBB, 0x23C420C6}, {0xBB, 0x005B3601}, {0xBB, 0x00B60040}, {0xBB, 0x4682469B}, -{0xBB, 0x44C34446}, {0xBB, 0xE00844C2}, {0xBB, 0x33801C2B}, {0xBB, 0x42BB681B}, {0xBB, 0x3D04D005}, {0xBB, 0x3C013E04}, -{0xBB, 0x2F00D328}, {0xBB, 0x4641D1F4}, {0xBB, 0x6833684A}, {0xBB, 0x42A23A01}, {0xBB, 0x2200D02C}, {0xBB, 0x2B006032}, -{0xBB, 0x4640D0EF}, {0xBB, 0x68404659}, {0xBB, 0x68092201}, {0xBB, 0x900040A2}, {0xBB, 0xD01D4211}, {0xBB, 0x68004650}, -{0xBB, 0xD11D4210}, {0xBB, 0x68299802}, {0xBB, 0x46414798}, {0xBB, 0x9A006849}, {0xBB, 0xD1B84291}, {0xBB, 0x6812464A}, -{0xBB, 0xD1B44542}, {0xBB, 0x3E043D04}, {0xBB, 0xD2D63C01}, {0xBB, 0x2A004A15}, {0xBB, 0xB005D10D}, {0xBB, 0x4690BC3C}, -{0xBB, 0x46A24699}, {0xBB, 0xBDF046AB}, {0xBB, 0xE7E64798}, {0xBB, 0xE7D2604C}, {0xBB, 0x47986828}, {0xBB, 0x4643E7E1}, -{0xBB, 0x4640685B}, {0xBB, 0xD10D2B00}, {0xBB, 0x2B006803}, {0xBB, 0x4649D00E}, {0xBB, 0xE000600B}, {0xBB, 0x464BBF00}, -{0xBB, 0x4690681A}, {0xBB, 0x29004641}, {0xBB, 0xE7DED196}, {0xBB, 0x46C16803}, {0xBB, 0xE7F74698}, {0xBB, 0xE7FA2300}, -{0xBB, 0x000007D4}, {0xBB, 0x00000000}, {0xBB, 0x1C01B508}, {0xBB, 0x20002200}, {0xBB, 0xF0002300}, {0xBB, 0xBD08F819}, -{0xBB, 0x4B09B538}, {0xBB, 0x1AED4D09}, {0xBB, 0xD00910AD}, {0xBB, 0x00AC3D01}, {0xBB, 0xE00018E4}, {0xBB, 0x68233D01}, -{0xBB, 0x3C044798}, {0xBB, 0xD1F92D00}, {0xBB, 0xF86EF000}, {0xBB, 0x46C0BD38}, {0xBB, 0x20000444}, {0xBB, 0x20000448}, -{0xBB, 0x464FB5F0}, {0xBB, 0xB4C04646}, {0xBB, 0x4B2B4698}, {0xBB, 0x681B25A4}, {0xBB, 0x595C006D}, {0xBB, 0x1C06B083}, -{0xBB, 0x46911C0F}, {0xBB, 0x2C009301}, {0xBB, 0x6865D044}, {0xBB, 0xDD1A2D1F}, {0xBB, 0x2B004B24}, {0xBB, 0x2001D102}, -{0xBB, 0xE01C4240}, {0xBB, 0x004020C8}, {0xBB, 0xBF00E000}, {0xBB, 0xD0F61E04}, {0xBB, 0x60452500}, {0xBB, 0x980123A4}, -{0xBB, 0x58C0005B}, {0xBB, 0x60209901}, {0xBB, 0x23C450CC}, {0xBB, 0x50E5005B}, {0xBB, 0x005B23C6}, {0xBB, 0x2E0050E5}, -{0xBB, 0x1C6BD10A}, {0xBB, 0x00AD3502}, {0xBB, 0x20006063}, {0xBB, 0xB003512F}, {0xBB, 0x4690BC0C}, {0xBB, 0xBDF04699}, -{0xBB, 0x18E300AB}, {0xBB, 0x46482288}, {0xBB, 0x20C45098}, {0xBB, 0x18220040}, {0xBB, 0x21016810}, {0xBB, 0x430840A9}, -{0xBB, 0x22846010}, {0xBB, 0x46400052}, {0xBB, 0x2E025098}, {0xBB, 0x22C6D1E1}, {0xBB, 0x18A30052}, {0xBB, 0x43016818}, -{0xBB, 0xE7DA6019}, {0xBB, 0x344D1C1C}, {0xBB, 0x515C34FF}, {0xBB, 0x46C0E7B5}, {0xBB, 0x000007D4}, {0xBB, 0x00000000}, -{0xBB, 0x46C0E7FE}, {0xBB, 0x46C0B5F8}, {0xBB, 0xBC08BCF8}, {0xBD, 0x00000000}, {0xB1, 0x00000000}, {0x8B, 0x200017C0}, -{0xBB, 0x4770469E}, {0xBB, 0x46C0B5F8}, {0xBB, 0xBC08BCF8}, {0xBB, 0x4770469E}, {0xBB, 0x00000043}, {0xBB, 0x20000010}, -{0xBB, 0x00000000}, {0xBB, 0x7FFFF944}, {0xBB, 0x00000001}, {0xBB, 0x00000000}, {0xBB, 0x00000008}, {0xBB, 0x00F42400}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x200002FC}, {0xBB, 0x20000364}, {0xBD, 0x00000000}, {0xB1, 0x00000000}, -{0x8B, 0x20001800}, {0xBB, 0x200003CC}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x000007D0}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000001}, {0xBB, 0x00000000}, -{0xBB, 0xABCD330E}, {0xBB, 0xE66D1234}, {0xBB, 0x0005DEEC}, {0xBB, 0x0000000B}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, -{0xB1, 0x00000000}, {0x8B, 0x20001C00}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, -{0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x00000000}, {0xBB, 0x20000010}, {0xBB, 0x00000585}, {0xBB, 0x000000E9}, -{0xBB, 0x000000C1}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001004}, -{0xA3, 0x23000012}, {0xBB, 0x00000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, -{0xA3, 0x23000012}, {0xB1, 0x00000010}, {0x93, 0x20000340}, {0x8B, 0x0001000F}, {0x93, 0x200008E8}, {0x8B, 0x00010011}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000ED30}, {0xA3, 0x23000002}, {0xBB, 0x0000001F}, -{0x8B, 0xE000EDF0}, {0xBB, 0xA05F0003}, {0xBB, 0xA05F0001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE000EDF0}, {0xA3, 0x23000002}, {0xBB, 0xA05F0003}, {0x9F, 0x00000000}, {0x9F, 0x01030003}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xB1, 0x00000010}, {0x8B, 0x00000000}, {0xB7, 0x00000000}, -{0xBD, 0x00000001}, {0x8B, 0x00000001}, {0xB7, 0x00000000}, {0xBD, 0x20000C00}, {0x8B, 0x00000002}, {0xB7, 0x00000000}, -{0xBD, 0x000000C1}, {0x8B, 0x00000003}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x8B, 0x00000004}, {0xB7, 0x00000000}, -{0xBD, 0x20000484}, {0x8B, 0x00000005}, {0xB7, 0x00000000}, {0xBD, 0x20000804}, {0x8B, 0x00000006}, {0xB7, 0x00000000}, -{0xBD, 0x00000000}, {0x8B, 0x00000007}, {0xB7, 0x00000000}, {0xBD, 0x00000000}, {0x8B, 0x00000008}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000009}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000A}, {0xB7, 0x00000000}, -{0xBD, 0x20000484}, {0x8B, 0x0000000B}, {0xB7, 0x00000000}, {0xBD, 0x20000484}, {0x8B, 0x0000000C}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000E}, {0xB7, 0x00000000}, {0xBD, 0x200001C3}, {0x8B, 0x0000000F}, {0xB7, 0x00000000}, -{0xBD, 0x200001FA}, {0x8B, 0x00000010}, {0xB7, 0x00000000}, {0xBD, 0x01000000}, {0x8B, 0x00000011}, {0xB7, 0x00000000}, -{0xBD, 0x200008E8}, {0x8B, 0x00000012}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFC}, {0x8B, 0x00000014}, {0xB7, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0x20000C00}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0x9F, 0x00000001}, {0x9F, 0x00000001}, {0x9F, 0xFFFD0490}, {0x9F, 0xBF8F2840}, {0x9F, 0x00000000}, {0x9F, 0x00000C30}, -{0x9F, 0x00000000}, {0x9F, 0x5000FEBF}, {0x9F, 0xFFFB0000}, {0x9F, 0xFFFB0200}, {0x9F, 0xFF7B4C20}, {0x9F, 0xFFFA0A00}, -{0x9F, 0x0102FFD7}, {0x9F, 0x0202F7DF}, {0x9F, 0x0002FFDE}, {0xBD, 0x1048D6D7}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x20001000}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x20004000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0x20001000}, {0xA3, 0x23000012}, {0xBB, 0x20004000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xBB, 0xA05F0003}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, -{0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, {0xBB, 0x01000001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000ED0C}, {0xA3, 0x23000012}, {0xBB, 0x05FA0004}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x03030003}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00030003}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xBB, 0xA05F0003}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, {0xBB, 0x01000000}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00030003}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, {0xBD, 0x00030003}, {0x81, 0x0000001E}, -{0xB1, 0x00000000}, {0x8B, 0xE000EDF0}, {0xA3, 0x23000012}, {0xB1, 0x00000010}, {0x8B, 0x00000000}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000001}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000002}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000003}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000004}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000005}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000006}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000007}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x00000008}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x00000009}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000A}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000B}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000C}, {0xB7, 0x00000000}, -{0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000E}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFF}, {0x8B, 0x0000000F}, {0xB7, 0x00000000}, -{0xBD, 0x00000438}, {0x8B, 0x00000010}, {0xB7, 0x00000000}, {0xBD, 0xC1000000}, {0x8B, 0x00000011}, {0xB7, 0x00000000}, -{0xBD, 0x20004000}, {0x8B, 0x00000012}, {0xB7, 0x00000000}, {0xBD, 0xFFFFFFFC}, {0x8B, 0x00000014}, {0xB7, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0002000}, {0xA3, 0x23000012}, {0xBB, 0x00000003}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000EDFC}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x01000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001000}, {0xA3, 0x23000012}, {0x9F, 0x00000000}, -{0xBD, 0x20000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001000}, {0xA3, 0x23000012}, {0xBB, 0x20000001}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE0001004}, {0xA3, 0x23000012}, {0xBB, 0x00000000}, -{0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xB1, 0x00000000}, {0x8B, 0xE000ED30}, {0xA3, 0x23000002}, {0xBB, 0x0000001F}, -{0x8B, 0xE000EDF0}, {0xBB, 0xA05F0003}, {0xBB, 0xA05F0001}, {0xBD, 0x00000000}, {0x81, 0x0000001E}, {0xA9, 0x00000001}, -{0x00, 0x00000000}, +SimulationData simul_data[] = { + { 0xA5, 0x0BB11477 }, { 0xA5, 0x0BB11477 }, { 0x81, 0x0000001E }, { 0xA9, 0x50000000 }, { 0x8D, 0xF0000000 }, { 0xB1, 0x000000F0 }, + { 0x9F, 0x00000000 }, { 0xB7, 0x04770021 }, { 0xBD, 0xF0000003 }, { 0xB1, 0x00000000 }, { 0xA3, 0x23000012 }, { 0x8B, 0xF0000000 }, + { 0x9F, 0x00000000 }, { 0x9F, 0xF00FF003 }, { 0xA5, 0x0BB11477 }, { 0x81, 0x0000001E }, { 0xA9, 0x50000000 }, { 0x8D, 0xF0000040 }, + { 0xB1, 0x00000000 }, { 0xA3, 0x23000002 }, { 0x8B, 0xE000ED00 }, { 0x9F, 0x00000000 }, { 0xBD, 0x410CC200 }, { 0x8B, 0xE000ED0C }, + { 0x9F, 0x00000000 }, { 0xBD, 0xFA050000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0002000 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000002 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x03000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0xBB, 0xA05F0001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0002000 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000040 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, + { 0xBB, 0x01000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001000 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x20000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001000 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x20000001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE00FF018 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000002 }, + { 0xBB, 0xA05F0003 }, { 0x9F, 0x00000000 }, { 0x9F, 0x01030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, + { 0xA3, 0x23000012 }, { 0xB1, 0x00000010 }, { 0x8B, 0x00000000 }, { 0xB7, 0x00000000 }, { 0xBD, 0x4000A148 }, { 0x8B, 0x00000001 }, + { 0xB7, 0x00000000 }, { 0xBD, 0x00020000 }, { 0x8B, 0x00000002 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x8B, 0x00000003 }, + { 0xB7, 0x00000000 }, { 0xBD, 0x4000A000 }, { 0x8B, 0x00000004 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x8B, 0x00000005 }, + { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x8B, 0x00000006 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000007 }, + { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x8B, 0x00000008 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000009 }, + { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000A }, { 0xB7, 0x00000000 }, { 0xBD, 0x1FFF4000 }, { 0x8B, 0x0000000B }, + { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x8B, 0x0000000C }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000E }, + { 0xB7, 0x00000000 }, { 0xBD, 0x00000173 }, { 0x8B, 0x0000000F }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000336 }, { 0x8B, 0x00000010 }, + { 0xB7, 0x00000000 }, { 0xBD, 0x01000000 }, { 0x8B, 0x00000011 }, { 0xB7, 0x00000000 }, { 0xBD, 0x20004000 }, { 0x8B, 0x00000012 }, + { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFC }, { 0x8B, 0x00000014 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xF0000FEC }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xF0000FE8 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x0000004C }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xF0000FE4 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000040 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xF0000FE0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x10001000 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0xBD, 0xFFFFFFFF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x40000608 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x1000002C }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000010 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000400 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000014 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000100 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000034 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000002 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000038 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00002000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x1000003C }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00002000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000010 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000400 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000014 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000100 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x1000002C }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000010 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000400 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10001040 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0xBD, 0xFFFFFFFF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000010 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000400 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000014 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000100 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x1000002C }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x1000002C }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xBB, 0xA05F0003 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, { 0xBB, 0x01000001 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000ED0C }, { 0xA3, 0x23000012 }, + { 0xBB, 0x05FA0004 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x03030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0xBB, 0xA05F0003 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, + { 0xBB, 0x01000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0xB1, 0x00000010 }, { 0x8B, 0x00000000 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000001 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000002 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000003 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000004 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000005 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000006 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000007 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000008 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000009 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000A }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000B }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000C }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000E }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000F }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000438 }, { 0x8B, 0x00000010 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xC1000000 }, { 0x8B, 0x00000011 }, { 0xB7, 0x00000000 }, { 0xBD, 0x20004000 }, { 0x8B, 0x00000012 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFC }, { 0x8B, 0x00000014 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE0002000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000003 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x01000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE0001000 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x20000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE0001000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x20000001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x10000010 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000400 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x10000014 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000100 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x40000524 }, { 0xA3, 0x23000012 }, { 0xBB, 0x0000000F }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20000000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x200008E8 }, { 0xBB, 0x200002D5 }, { 0xBB, 0x200002E7 }, { 0xBB, 0x200002E9 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x200002EB }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x200002ED }, { 0xBB, 0x200002EF }, + { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, + { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBD, 0x00000000 }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20000080 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, + { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x200002F1 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0xF802F000 }, + { 0xBB, 0xF840F000 }, { 0xBB, 0xC830A00C }, { 0xBB, 0x18243808 }, { 0xBB, 0x46A2182D }, { 0xBB, 0x46AB1E67 }, { 0xBB, 0x465D4654 }, + { 0xBB, 0xD10142AC }, { 0xBB, 0xF832F000 }, { 0xBB, 0x3E0F467E }, { 0xBB, 0x46B6CC0F }, { 0xBB, 0x42332601 }, { 0xBB, 0x1AFBD000 }, + { 0xBB, 0x46AB46A2 }, { 0xBB, 0x47184333 }, { 0xBB, 0x000002A0 }, { 0xBB, 0x000002C0 }, { 0xBB, 0xD3023A10 }, { 0xBB, 0xC178C878 }, + { 0xBB, 0x0752D8FA }, { 0xBB, 0xC830D301 }, { 0xBB, 0xD501C130 }, { 0xBB, 0x600C6804 }, { 0xBB, 0x00004770 }, { 0xBB, 0x24002300 }, + { 0xBB, 0x26002500 }, { 0xBB, 0xD3013A10 }, { 0xBB, 0xD8FBC178 }, { 0xBB, 0xD3000752 }, { 0xBB, 0xD500C130 }, { 0xBB, 0x4770600B }, + { 0xBB, 0x46C0B51F }, { 0xBB, 0xBD1F46C0 }, { 0xBB, 0xBD10B510 }, { 0xBB, 0xF8E9F000 }, { 0xBB, 0xF7FF4611 }, { 0xBB, 0xF000FFF5 }, + { 0xBB, 0xF000F809 }, { 0xBB, 0xB403F901 }, { 0xBB, 0xFFF2F7FF }, { 0xBB, 0xF000BC03 }, { 0xBB, 0x0000F905 }, { 0xBB, 0x4A0D2101 }, + { 0xBB, 0x490D6011 }, { 0xBB, 0xE0076808 }, { 0xBB, 0x1C496801 }, { 0xBB, 0x2100D003 }, { 0xBB, 0x60114A08 }, { 0xBB, 0x1D00E007 }, + { 0xBB, 0x68094907 }, { 0xBB, 0x68124A07 }, { 0xBB, 0x42811889 }, { 0xBB, 0xBF00D8F0 }, { 0xBB, 0x4A052101 }, { 0xBB, 0xBF006011 }, + { 0xBB, 0x0000E7FE }, { 0xBB, 0x20000C04 }, { 0xBB, 0x20000C10 }, { 0xBB, 0x20000C14 }, { 0xBB, 0x20000C00 }, { 0xBB, 0x4841B500 }, + { 0xBB, 0xB28069C0 }, { 0xBB, 0x0003381D }, { 0xBB, 0xF8DFF000 }, { 0xBB, 0x290D1718 }, { 0xBB, 0x29292929 }, { 0xBB, 0x2523290F }, + { 0xBB, 0x1B192929 }, { 0xBB, 0x2113111F }, { 0xBB, 0x27291529 }, { 0xBB, 0x2001291D }, { 0xBB, 0x2001BD00 }, { 0xBB, 0x2001E7FC }, + { 0xBB, 0x2001E7FA }, { 0xBB, 0x2000E7F8 }, { 0xBB, 0x2001E7F6 }, { 0xBB, 0x2001E7F4 }, { 0xBB, 0x2001E7F2 }, { 0xBB, 0x2001E7F0 }, + { 0xBB, 0x2001E7EE }, { 0xBB, 0x2000E7EC }, { 0xBB, 0x2001E7EA }, { 0xBB, 0x2001E7E8 }, { 0xBB, 0x2001E7E6 }, { 0xBB, 0x2001E7E4 }, + { 0xBB, 0xB500E7E2 }, { 0xBB, 0x69C04827 }, { 0xBB, 0x381DB280 }, { 0xBB, 0xF0000003 }, { 0xBB, 0x1718F8AC }, { 0xBB, 0x2929290D }, + { 0xBB, 0x290F2929 }, { 0xBB, 0x29292523 }, { 0xBB, 0x111F1B19 }, { 0xBB, 0x15292113 }, { 0xBB, 0x291D2729 }, { 0xBB, 0xBD002001 }, + { 0xBB, 0xE7FC2001 }, { 0xBB, 0xE7FA2000 }, { 0xBB, 0xE7F82000 }, { 0xBB, 0xE7F62001 }, { 0xBB, 0xE7F42001 }, { 0xBB, 0xE7F22000 }, + { 0xBB, 0xE7F02000 }, { 0xBB, 0xE7EE2000 }, { 0xBB, 0xE7EC2000 }, { 0xBB, 0xE7EA2001 }, { 0xBB, 0xE7E82001 }, { 0xBB, 0xE7E62001 }, + { 0xBB, 0xE7E42001 }, { 0xBB, 0xE7E22000 }, { 0xBB, 0xF7FFB510 }, { 0xBB, 0x2800FFCA }, { 0xBB, 0x480DD005 }, { 0xBB, 0x6048490D }, + { 0xBB, 0x490D13C8 }, { 0xBB, 0xF7FF6188 }, { 0xBB, 0x2800FF8D }, { 0xBB, 0x2001D009 }, { 0xBB, 0x07092105 }, { 0xBB, 0x02122207 }, + { 0xBB, 0x67C81889 }, { 0xBB, 0x490707C0 }, { 0xBB, 0xBD1060C8 }, { 0xBB, 0x49074806 }, { 0xBB, 0x47706008 }, { 0xBB, 0x10000040 }, + { 0xBB, 0xC007FFDF }, { 0xBB, 0x40000500 }, { 0xBB, 0x40006C00 }, { 0xBB, 0x50000500 }, { 0xBB, 0x00F42400 }, { 0xBB, 0x20000800 }, + { 0xBB, 0x6802480A }, { 0xBB, 0x430A210F }, { 0xBB, 0x48096002 }, { 0xBB, 0x48094780 }, { 0xBB, 0xE7FE4700 }, { 0xBB, 0xE7FEE7FE }, + { 0xBB, 0xE7FEE7FE }, { 0xBB, 0x0000E7FE }, { 0xBB, 0x49064805 }, { 0xBB, 0x4B064A04 }, { 0xBB, 0x00004770 }, { 0xBB, 0x40000524 }, + { 0xBB, 0x2000027D }, { 0xBB, 0x200000C1 }, { 0xBB, 0x20000868 }, { 0xBB, 0x200008E8 }, { 0xBB, 0x20000868 }, { 0xBB, 0x47704770 }, + { 0xBB, 0x46754770 }, { 0xBB, 0xF822F000 }, { 0xBB, 0x000546AE }, { 0xBB, 0x46534669 }, { 0xBB, 0x00C008C0 }, { 0xBB, 0xB0184685 }, + { 0xBB, 0xF7FFB520 }, { 0xBB, 0xBC60FFDD }, { 0xBB, 0x08492700 }, { 0xBB, 0x260046B6 }, { 0xBB, 0xC5C0C5C0 }, { 0xBB, 0xC5C0C5C0 }, + { 0xBB, 0xC5C0C5C0 }, { 0xBB, 0xC5C0C5C0 }, { 0xBB, 0x00493D40 }, { 0xBB, 0x4770468D }, { 0xBB, 0x46C04604 }, { 0xBB, 0x462046C0 }, + { 0xBB, 0xFEF9F7FF }, { 0xBB, 0x47704800 }, { 0xBB, 0x20000804 }, { 0xBB, 0x20184901 }, { 0xBB, 0xE7FEBEAB }, { 0xBB, 0x00020026 }, + { 0xBB, 0xB4304770 }, { 0xBB, 0x1E644674 }, { 0xBB, 0x1C647825 }, { 0xBB, 0xD30442AB }, { 0xBB, 0x005B5D63 }, { 0xBB, 0xBC3018E3 }, + { 0xBB, 0x461D4718 }, { 0xBB, 0x0000E7F8 }, { 0xBB, 0x200003BC }, { 0xBB, 0x20000800 }, { 0xBB, 0x00000004 }, { 0xBB, 0x20000104 }, + { 0xBB, 0x200003C0 }, { 0xBB, 0x20000804 }, { 0xBB, 0x000000E4 }, { 0xBB, 0x20000120 }, { 0xBB, 0x00F42400 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C10 }, { 0xA3, 0x23000012 }, { 0xBB, 0xFFFFFFFF }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000000 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0x9F, 0x200008E8 }, + { 0x9F, 0x200002D5 }, { 0x9F, 0x200002E7 }, { 0x9F, 0x200002E9 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, + { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x200002EB }, { 0x9F, 0x00000000 }, + { 0x9F, 0x00000000 }, { 0x9F, 0x200002ED }, { 0x9F, 0x200002EF }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, + { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x00000000 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, + { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, + { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, + { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x200002F1 }, { 0x9F, 0x00000000 }, + { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0xF802F000 }, + { 0x9F, 0xF840F000 }, { 0x9F, 0xC830A00C }, { 0x9F, 0x18243808 }, { 0x9F, 0x46A2182D }, { 0x9F, 0x46AB1E67 }, { 0x9F, 0x465D4654 }, + { 0x9F, 0xD10142AC }, { 0x9F, 0xF832F000 }, { 0x9F, 0x3E0F467E }, { 0x9F, 0x46B6CC0F }, { 0x9F, 0x42332601 }, { 0x9F, 0x1AFBD000 }, + { 0x9F, 0x46AB46A2 }, { 0x9F, 0x47184333 }, { 0x9F, 0x000002A0 }, { 0x9F, 0x000002C0 }, { 0x9F, 0xD3023A10 }, { 0x9F, 0xC178C878 }, + { 0x9F, 0x0752D8FA }, { 0x9F, 0xC830D301 }, { 0x9F, 0xD501C130 }, { 0x9F, 0x600C6804 }, { 0x9F, 0x00004770 }, { 0x9F, 0x24002300 }, + { 0x9F, 0x26002500 }, { 0x9F, 0xD3013A10 }, { 0x9F, 0xD8FBC178 }, { 0x9F, 0xD3000752 }, { 0x9F, 0xD500C130 }, { 0x9F, 0x4770600B }, + { 0x9F, 0x46C0B51F }, { 0x9F, 0xBD1F46C0 }, { 0x9F, 0xBD10B510 }, { 0x9F, 0xF8E9F000 }, { 0x9F, 0xF7FF4611 }, { 0x9F, 0xF000FFF5 }, + { 0x9F, 0xF000F809 }, { 0x9F, 0xB403F901 }, { 0x9F, 0xFFF2F7FF }, { 0x9F, 0xF000BC03 }, { 0x9F, 0x0000F905 }, { 0x9F, 0x4A0D2101 }, + { 0x9F, 0x490D6011 }, { 0x9F, 0xE0076808 }, { 0x9F, 0x1C496801 }, { 0x9F, 0x2100D003 }, { 0x9F, 0x60114A08 }, { 0x9F, 0x1D00E007 }, + { 0x9F, 0x68094907 }, { 0x9F, 0x68124A07 }, { 0x9F, 0x42811889 }, { 0x9F, 0xBF00D8F0 }, { 0x9F, 0x4A052101 }, { 0x9F, 0xBF006011 }, + { 0x9F, 0x0000E7FE }, { 0x9F, 0x20000C04 }, { 0x9F, 0x20000C10 }, { 0x9F, 0x20000C14 }, { 0x9F, 0x20000C00 }, { 0x9F, 0x4841B500 }, + { 0x9F, 0xB28069C0 }, { 0x9F, 0x0003381D }, { 0x9F, 0xF8DFF000 }, { 0x9F, 0x290D1718 }, { 0x9F, 0x29292929 }, { 0x9F, 0x2523290F }, + { 0x9F, 0x1B192929 }, { 0x9F, 0x2113111F }, { 0x9F, 0x27291529 }, { 0x9F, 0x2001291D }, { 0x9F, 0x2001BD00 }, { 0x9F, 0x2001E7FC }, + { 0x9F, 0x2001E7FA }, { 0x9F, 0x2000E7F8 }, { 0x9F, 0x2001E7F6 }, { 0x9F, 0x2001E7F4 }, { 0x9F, 0x2001E7F2 }, { 0x9F, 0x2001E7F0 }, + { 0x9F, 0x2001E7EE }, { 0x9F, 0x2000E7EC }, { 0x9F, 0x2001E7EA }, { 0x9F, 0x2001E7E8 }, { 0x9F, 0x2001E7E6 }, { 0x9F, 0x2001E7E4 }, + { 0x9F, 0xB500E7E2 }, { 0x9F, 0x69C04827 }, { 0x9F, 0x381DB280 }, { 0x9F, 0xF0000003 }, { 0x9F, 0x1718F8AC }, { 0x9F, 0x2929290D }, + { 0x9F, 0x290F2929 }, { 0x9F, 0x29292523 }, { 0x9F, 0x111F1B19 }, { 0x9F, 0x15292113 }, { 0x9F, 0x291D2729 }, { 0x9F, 0xBD002001 }, + { 0x9F, 0xE7FC2001 }, { 0x9F, 0xE7FA2000 }, { 0x9F, 0xE7F82000 }, { 0x9F, 0xE7F62001 }, { 0x9F, 0xE7F42001 }, { 0x9F, 0xE7F22000 }, + { 0x9F, 0xE7F02000 }, { 0x9F, 0xE7EE2000 }, { 0x9F, 0xE7EC2000 }, { 0x9F, 0xE7EA2001 }, { 0x9F, 0xE7E82001 }, { 0x9F, 0xE7E62001 }, + { 0x9F, 0xE7E42001 }, { 0x9F, 0xE7E22000 }, { 0x9F, 0xF7FFB510 }, { 0x9F, 0x2800FFCA }, { 0x9F, 0x480DD005 }, { 0x9F, 0x6048490D }, + { 0x9F, 0x490D13C8 }, { 0x9F, 0xF7FF6188 }, { 0x9F, 0x2800FF8D }, { 0x9F, 0x2001D009 }, { 0x9F, 0x07092105 }, { 0x9F, 0x02122207 }, + { 0x9F, 0x67C81889 }, { 0x9F, 0x490707C0 }, { 0x9F, 0xBD1060C8 }, { 0x9F, 0x49074806 }, { 0x9F, 0x47706008 }, { 0x9F, 0x10000040 }, + { 0x9F, 0xC007FFDF }, { 0x9F, 0x40000500 }, { 0x9F, 0x40006C00 }, { 0x9F, 0x50000500 }, { 0x9F, 0x00F42400 }, { 0x9F, 0x20000800 }, + { 0x9F, 0x6802480A }, { 0x9F, 0x430A210F }, { 0x9F, 0x48096002 }, { 0x9F, 0x48094780 }, { 0x9F, 0xE7FE4700 }, { 0x9F, 0xE7FEE7FE }, + { 0x9F, 0xE7FEE7FE }, { 0x9F, 0x0000E7FE }, { 0x9F, 0x49064805 }, { 0x9F, 0x4B064A04 }, { 0x9F, 0x00004770 }, { 0x9F, 0x40000524 }, + { 0x9F, 0x2000027D }, { 0x9F, 0x200000C1 }, { 0x9F, 0x20000868 }, { 0x9F, 0x200008E8 }, { 0x9F, 0x20000868 }, { 0x9F, 0x47704770 }, + { 0x9F, 0x46754770 }, { 0x9F, 0xF822F000 }, { 0x9F, 0x000546AE }, { 0x9F, 0x46534669 }, { 0x9F, 0x00C008C0 }, { 0x9F, 0xB0184685 }, + { 0x9F, 0xF7FFB520 }, { 0x9F, 0xBC60FFDD }, { 0x9F, 0x08492700 }, { 0x9F, 0x260046B6 }, { 0x9F, 0xC5C0C5C0 }, { 0x9F, 0xC5C0C5C0 }, + { 0x9F, 0xC5C0C5C0 }, { 0x9F, 0xC5C0C5C0 }, { 0x9F, 0x00493D40 }, { 0x9F, 0x4770468D }, { 0x9F, 0x46C04604 }, { 0x9F, 0x462046C0 }, + { 0x9F, 0xFEF9F7FF }, { 0x9F, 0x47704800 }, { 0x9F, 0x20000804 }, { 0x9F, 0x20184901 }, { 0x9F, 0xE7FEBEAB }, { 0x9F, 0x00020026 }, + { 0x9F, 0xB4304770 }, { 0x9F, 0x1E644674 }, { 0x9F, 0x1C647825 }, { 0x9F, 0xD30442AB }, { 0x9F, 0x005B5D63 }, { 0x9F, 0xBC3018E3 }, + { 0x9F, 0x461D4718 }, { 0x9F, 0x0000E7F8 }, { 0x9F, 0x200003BC }, { 0x9F, 0x20000800 }, { 0x9F, 0x00000004 }, { 0x9F, 0x20000104 }, + { 0x9F, 0x200003C0 }, { 0x9F, 0x20000804 }, { 0x9F, 0x000000E4 }, { 0x9F, 0x20000120 }, { 0xBD, 0x00F42400 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0x20000C00 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0x9F, 0xFBDF4041 }, { 0x9F, 0xD7CE8201 }, + { 0x9F, 0xFFFD0490 }, { 0x9F, 0xBF8F2840 }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0x000073FF }, { 0x9F, 0x2200F7DF }, { 0x9F, 0x5000FEBF }, + { 0x9F, 0xFFFB0000 }, { 0x9F, 0xFFFB0200 }, { 0x9F, 0xFF7B4C20 }, { 0x9F, 0xFFFA0A00 }, { 0x9F, 0x0102FFD7 }, { 0x9F, 0x0202F7DF }, + { 0x9F, 0x0002FFDE }, { 0xBD, 0x1048D6D7 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C00 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C04 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C10 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C14 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000C30 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, + { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001004 }, { 0xA3, 0x23000012 }, + { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, + { 0xB1, 0x00000010 }, { 0x93, 0x200002D4 }, { 0x8B, 0x0001000F }, { 0x93, 0x200008E8 }, { 0x8B, 0x00010011 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000ED30 }, { 0xA3, 0x23000002 }, { 0xBB, 0x0000001F }, { 0x8B, 0xE000EDF0 }, + { 0xBB, 0xA05F0003 }, { 0xBB, 0xA05F0001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, + { 0xA3, 0x23000002 }, { 0xBB, 0xA05F0003 }, { 0x9F, 0x00000000 }, { 0x9F, 0x01030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xB1, 0x00000010 }, { 0x8B, 0x00000000 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x8B, 0x00000001 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x8B, 0x00000002 }, { 0xB7, 0x00000000 }, { 0xBD, 0x20000C00 }, + { 0x8B, 0x00000003 }, { 0xB7, 0x00000000 }, { 0xBD, 0x20000868 }, { 0x8B, 0x00000004 }, { 0xB7, 0x00000000 }, { 0xBD, 0x200003BC }, + { 0x8B, 0x00000005 }, { 0xB7, 0x00000000 }, { 0xBD, 0x20000804 }, { 0x8B, 0x00000006 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x8B, 0x00000007 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x8B, 0x00000008 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x00000009 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000A }, { 0xB7, 0x00000000 }, { 0xBD, 0x200003BC }, + { 0x8B, 0x0000000B }, { 0xB7, 0x00000000 }, { 0xBD, 0x200003BC }, { 0x8B, 0x0000000C }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x0000000E }, { 0xB7, 0x00000000 }, { 0xBD, 0x20000157 }, { 0x8B, 0x0000000F }, { 0xB7, 0x00000000 }, { 0xBD, 0x2000019C }, + { 0x8B, 0x00000010 }, { 0xB7, 0x00000000 }, { 0xBD, 0x01000000 }, { 0x8B, 0x00000011 }, { 0xB7, 0x00000000 }, { 0xBD, 0x200008E8 }, + { 0x8B, 0x00000012 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFC }, { 0x8B, 0x00000014 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C00 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000001 }, + { 0x9F, 0x00000000 }, { 0x9F, 0xFFFD0490 }, { 0x9F, 0xBF8F2840 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000C30 }, { 0x9F, 0x2200F7DF }, + { 0x9F, 0x5000FEBF }, { 0x9F, 0xFFFB0000 }, { 0x9F, 0xFFFB0200 }, { 0x9F, 0xFF7B4C20 }, { 0x9F, 0xFFFA0A00 }, { 0x9F, 0x0102FFD7 }, + { 0x9F, 0x0202F7DF }, { 0x9F, 0x0002FFDE }, { 0xBD, 0x1048D6D7 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000010 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000400 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000014 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000100 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x1000002C }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10001000 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, + { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0xFFFFFFFF }, { 0xBD, 0xFFFFFFFF }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x40000608 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x40000600 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x40000604 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000002 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E508 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E508 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000400 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E508 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000800 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E508 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000C00 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000000 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x200008E8 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x200008E8 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xBB, 0xA05F0003 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, { 0xBB, 0x01000001 }, { 0xBD, 0x00000000 }, + { 0x81, 0x0000001E }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000ED0C }, { 0xA3, 0x23000012 }, { 0xBB, 0x05FA0004 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x03030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xBB, 0xA05F0003 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, { 0xBB, 0x01000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xB1, 0x00000010 }, + { 0x8B, 0x00000000 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000001 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x00000002 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000003 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x00000004 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000005 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x00000006 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000007 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x00000008 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000009 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x0000000A }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000B }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x0000000C }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000E }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, + { 0x8B, 0x0000000F }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFE }, { 0x8B, 0x00000010 }, { 0xB7, 0x00000000 }, { 0xBD, 0xC1000000 }, + { 0x8B, 0x00000011 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFC }, { 0x8B, 0x00000012 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFC }, + { 0x8B, 0x00000014 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0002000 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x00000003 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x01000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001000 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x20000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001000 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x20000001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000010 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000400 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x10000014 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000100 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x40000524 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x0000000F }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E504 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x00000001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x4001E400 }, + { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000000 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x200008E8 }, { 0xBB, 0x20000341 }, { 0xBB, 0x20000353 }, { 0xBB, 0x20000355 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x20000357 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x20000359 }, { 0xBB, 0x2000035B }, { 0xBB, 0x2000035D }, + { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x00000000 }, { 0xBB, 0x2000035D }, + { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, + { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBD, 0x00000000 }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000080 }, + { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, + { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x2000035D }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0xF802F000 }, { 0xBB, 0xF840F000 }, + { 0xBB, 0xC830A00C }, { 0xBB, 0x18243808 }, { 0xBB, 0x46A2182D }, { 0xBB, 0x46AB1E67 }, { 0xBB, 0x465D4654 }, { 0xBB, 0xD10142AC }, + { 0xBB, 0xF832F000 }, { 0xBB, 0x3E0F467E }, { 0xBB, 0x46B6CC0F }, { 0xBB, 0x42332601 }, { 0xBB, 0x1AFBD000 }, { 0xBB, 0x46AB46A2 }, + { 0xBB, 0x47184333 }, { 0xBB, 0x00000368 }, { 0xBB, 0x00000388 }, { 0xBB, 0xD3023A10 }, { 0xBB, 0xC178C878 }, { 0xBB, 0x0752D8FA }, + { 0xBB, 0xC830D301 }, { 0xBB, 0xD501C130 }, { 0xBB, 0x600C6804 }, { 0xBB, 0x00004770 }, { 0xBB, 0x24002300 }, { 0xBB, 0x26002500 }, + { 0xBB, 0xD3013A10 }, { 0xBB, 0xD8FBC178 }, { 0xBB, 0xD3000752 }, { 0xBB, 0xD500C130 }, { 0xBB, 0x4770600B }, { 0xBB, 0x46C0B51F }, + { 0xBB, 0xBD1F46C0 }, { 0xBB, 0xBD10B510 }, { 0xBB, 0xF94CF000 }, { 0xBB, 0xF7FF4611 }, { 0xBB, 0xF000FFF5 }, { 0xBB, 0xF000F825 }, + { 0xBB, 0xB403F964 }, { 0xBB, 0xFFF2F7FF }, { 0xBB, 0xF000BC03 }, { 0xBB, 0x0000F969 }, { 0xBB, 0x4605B570 }, { 0xBB, 0x4616460C }, + { 0xBB, 0xCC0FE002 }, { 0xBB, 0x3E10C50F }, { 0xBB, 0xD2FA2E10 }, { 0xBB, 0xD3022E08 }, { 0xBB, 0xC503CC03 }, { 0xBB, 0x2E043E08 }, + { 0xBB, 0xCC01D307 }, { 0xBB, 0x1F36C501 }, { 0xBB, 0x7821E003 }, { 0xBB, 0x1C647029 }, { 0xBB, 0x1E761C6D }, { 0xBB, 0xBD70D2F9 }, + { 0xBB, 0x49162001 }, { 0xBB, 0x49166008 }, { 0xBB, 0xBF006048 }, { 0xBB, 0x68004815 }, { 0xBB, 0xD0FB2800 }, { 0xBB, 0x68024814 }, + { 0xBB, 0x48154914 }, { 0xBB, 0xF7FF6800 }, { 0xBB, 0x2000FFD3 }, { 0xBB, 0x6048490E }, { 0xBB, 0x480EBF00 }, { 0xBB, 0x28006800 }, + { 0xBB, 0x4810D0FB }, { 0xBB, 0x28016980 }, { 0xBB, 0x480BD10B }, { 0xBB, 0x490B6802 }, { 0xBB, 0x6800480B }, { 0xBB, 0xF8CEF000 }, + { 0xBB, 0xD0022800 }, { 0xBB, 0x49032000 }, { 0xBB, 0x20016008 }, { 0xBB, 0x60084908 }, { 0xBB, 0xE7FEBF00 }, { 0xBB, 0x20000C04 }, + { 0xBB, 0x4001E500 }, { 0xBB, 0x4001E400 }, { 0xBB, 0x20000C14 }, { 0xBB, 0x20001000 }, { 0xBB, 0x20000C10 }, { 0xBB, 0x20000C00 }, + { 0xBB, 0x20000C00 }, { 0xBB, 0x4841B500 }, { 0xBB, 0xB28069C0 }, { 0xBB, 0x0003381D }, { 0xBB, 0xF90DF000 }, { 0xBB, 0x290D1718 }, + { 0xBB, 0x29292929 }, { 0xBB, 0x2523290F }, { 0xBB, 0x1B192929 }, { 0xBB, 0x2113111F }, { 0xBB, 0x27291529 }, { 0xBB, 0x2001291D }, + { 0xBB, 0x2001BD00 }, { 0xBB, 0x2001E7FC }, { 0xBB, 0x2001E7FA }, { 0xBB, 0x2000E7F8 }, { 0xBB, 0x2001E7F6 }, { 0xBB, 0x2001E7F4 }, + { 0xBB, 0x2001E7F2 }, { 0xBB, 0x2001E7F0 }, { 0xBB, 0x2001E7EE }, { 0xBB, 0x2000E7EC }, { 0xBB, 0x2001E7EA }, { 0xBB, 0x2001E7E8 }, + { 0xBB, 0x2001E7E6 }, { 0xBB, 0x2001E7E4 }, { 0xBB, 0xB500E7E2 }, { 0xBB, 0x69C04827 }, { 0xBB, 0x381DB280 }, { 0xBB, 0xF0000003 }, + { 0xBB, 0x1718F8DA }, { 0xBB, 0x2929290D }, { 0xBB, 0x290F2929 }, { 0xBB, 0x29292523 }, { 0xBB, 0x111F1B19 }, { 0xBB, 0x15292113 }, + { 0xBB, 0x291D2729 }, { 0xBB, 0xBD002001 }, { 0xBB, 0xE7FC2001 }, { 0xBB, 0xE7FA2000 }, { 0xBB, 0xE7F82000 }, { 0xBB, 0xE7F62001 }, + { 0xBB, 0xE7F42001 }, { 0xBB, 0xE7F22000 }, { 0xBB, 0xE7F02000 }, { 0xBB, 0xE7EE2000 }, { 0xBB, 0xE7EC2000 }, { 0xBB, 0xE7EA2001 }, + { 0xBB, 0xE7E82001 }, { 0xBB, 0xE7E62001 }, { 0xBB, 0xE7E42001 }, { 0xBB, 0xE7E22000 }, { 0xBB, 0xF7FFB510 }, { 0xBB, 0x2800FFCA }, + { 0xBB, 0x480DD005 }, { 0xBB, 0x6048490D }, { 0xBB, 0x490D13C8 }, { 0xBB, 0xF7FF6188 }, { 0xBB, 0x2800FF8D }, { 0xBB, 0x2001D009 }, + { 0xBB, 0x07092105 }, { 0xBB, 0x02122207 }, { 0xBB, 0x67C81889 }, { 0xBB, 0x490707C0 }, { 0xBB, 0xBD1060C8 }, { 0xBB, 0x49074806 }, + { 0xBB, 0x47706008 }, { 0xBB, 0x10000040 }, { 0xBB, 0xC007FFDF }, { 0xBB, 0x40000500 }, { 0xBB, 0x40006C00 }, { 0xBB, 0x50000500 }, + { 0xBB, 0x00F42400 }, { 0xBB, 0x20000800 }, { 0xBB, 0x6802480A }, { 0xBB, 0x430A210F }, { 0xBB, 0x48096002 }, { 0xBB, 0x48094780 }, + { 0xBB, 0xE7FE4700 }, { 0xBB, 0xE7FEE7FE }, { 0xBB, 0xE7FEE7FE }, { 0xBB, 0x0000E7FE }, { 0xBB, 0x49064805 }, { 0xBB, 0x4B064A04 }, + { 0xBB, 0x00004770 }, { 0xBB, 0x40000524 }, { 0xBB, 0x200002E9 }, { 0xBB, 0x200000C1 }, { 0xBB, 0x20000868 }, { 0xBB, 0x200008E8 }, + { 0xBB, 0x20000868 }, { 0xBB, 0xB5104603 }, { 0xBB, 0x079B430B }, { 0xBB, 0x2A04D10F }, { 0xBB, 0xC808D30D }, { 0xBB, 0x1F12C910 }, + { 0xBB, 0xD0F842A3 }, { 0xBB, 0xBA21BA18 }, { 0xBB, 0xD9014288 }, { 0xBB, 0xBD102001 }, { 0xBB, 0x43C02000 }, { 0xBB, 0x2A00BD10 }, + { 0xBB, 0x07D3D003 }, { 0xBB, 0x1C52D003 }, { 0xBB, 0x2000E007 }, { 0xBB, 0x7803BD10 }, { 0xBB, 0x1C40780C }, { 0xBB, 0x1B1B1C49 }, + { 0xBB, 0x7803D107 }, { 0xBB, 0x1C40780C }, { 0xBB, 0x1B1B1C49 }, { 0xBB, 0x1E92D101 }, { 0xBB, 0x4618D1F1 }, { 0xBB, 0x4770BD10 }, + { 0xBB, 0x47704770 }, { 0xBB, 0xF0004675 }, { 0xBB, 0x46AEF823 }, { 0xBB, 0x46690005 }, { 0xBB, 0x08C04653 }, { 0xBB, 0x468500C0 }, + { 0xBB, 0xB520B018 }, { 0xBB, 0xFFB0F7FF }, { 0xBD, 0x00000000 }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000400 }, { 0xBB, 0x2700BC60 }, + { 0xBB, 0x46B60849 }, { 0xBB, 0xC5C02600 }, { 0xBB, 0xC5C0C5C0 }, { 0xBB, 0xC5C0C5C0 }, { 0xBB, 0xC5C0C5C0 }, { 0xBB, 0x3D40C5C0 }, + { 0xBB, 0x468D0049 }, { 0xBB, 0x46044770 }, { 0xBB, 0x46C046C0 }, { 0xBB, 0xF7FF4620 }, { 0xBB, 0x0000FE96 }, { 0xBB, 0x47704800 }, + { 0xBB, 0x20000804 }, { 0xBB, 0x20184901 }, { 0xBB, 0xE7FEBEAB }, { 0xBB, 0x00020026 }, { 0xBB, 0xB4304770 }, { 0xBB, 0x1E644674 }, + { 0xBB, 0x1C647825 }, { 0xBB, 0xD30442AB }, { 0xBB, 0x005B5D63 }, { 0xBB, 0xBC3018E3 }, { 0xBB, 0x461D4718 }, { 0xBB, 0x0000E7F8 }, + { 0xBB, 0x20000484 }, { 0xBB, 0x20000800 }, { 0xBB, 0x00000004 }, { 0xBB, 0x20000104 }, { 0xBB, 0x20000488 }, { 0xBB, 0x20000804 }, + { 0xBB, 0x000000E4 }, { 0xBB, 0x20000120 }, { 0xBB, 0x00F42400 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20000C10 }, { 0xA3, 0x23000012 }, { 0xBB, 0xFFFFFFFF }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E504 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x4001E400 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00000001 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20000000 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0x9F, 0x200008E8 }, { 0x9F, 0x20000341 }, { 0x9F, 0x20000353 }, + { 0x9F, 0x20000355 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, + { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x20000357 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x20000359 }, + { 0x9F, 0x2000035B }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, + { 0x9F, 0x00000000 }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, + { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, + { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, + { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x2000035D }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, + { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000000 }, { 0x9F, 0xF802F000 }, { 0x9F, 0xF840F000 }, { 0x9F, 0xC830A00C }, + { 0x9F, 0x18243808 }, { 0x9F, 0x46A2182D }, { 0x9F, 0x46AB1E67 }, { 0x9F, 0x465D4654 }, { 0x9F, 0xD10142AC }, { 0x9F, 0xF832F000 }, + { 0x9F, 0x3E0F467E }, { 0x9F, 0x46B6CC0F }, { 0x9F, 0x42332601 }, { 0x9F, 0x1AFBD000 }, { 0x9F, 0x46AB46A2 }, { 0x9F, 0x47184333 }, + { 0x9F, 0x00000368 }, { 0x9F, 0x00000388 }, { 0x9F, 0xD3023A10 }, { 0x9F, 0xC178C878 }, { 0x9F, 0x0752D8FA }, { 0x9F, 0xC830D301 }, + { 0x9F, 0xD501C130 }, { 0x9F, 0x600C6804 }, { 0x9F, 0x00004770 }, { 0x9F, 0x24002300 }, { 0x9F, 0x26002500 }, { 0x9F, 0xD3013A10 }, + { 0x9F, 0xD8FBC178 }, { 0x9F, 0xD3000752 }, { 0x9F, 0xD500C130 }, { 0x9F, 0x4770600B }, { 0x9F, 0x46C0B51F }, { 0x9F, 0xBD1F46C0 }, + { 0x9F, 0xBD10B510 }, { 0x9F, 0xF94CF000 }, { 0x9F, 0xF7FF4611 }, { 0x9F, 0xF000FFF5 }, { 0x9F, 0xF000F825 }, { 0x9F, 0xB403F964 }, + { 0x9F, 0xFFF2F7FF }, { 0x9F, 0xF000BC03 }, { 0x9F, 0x0000F969 }, { 0x9F, 0x4605B570 }, { 0x9F, 0x4616460C }, { 0x9F, 0xCC0FE002 }, + { 0x9F, 0x3E10C50F }, { 0x9F, 0xD2FA2E10 }, { 0x9F, 0xD3022E08 }, { 0x9F, 0xC503CC03 }, { 0x9F, 0x2E043E08 }, { 0x9F, 0xCC01D307 }, + { 0x9F, 0x1F36C501 }, { 0x9F, 0x7821E003 }, { 0x9F, 0x1C647029 }, { 0x9F, 0x1E761C6D }, { 0x9F, 0xBD70D2F9 }, { 0x9F, 0x49162001 }, + { 0x9F, 0x49166008 }, { 0x9F, 0xBF006048 }, { 0x9F, 0x68004815 }, { 0x9F, 0xD0FB2800 }, { 0x9F, 0x68024814 }, { 0x9F, 0x48154914 }, + { 0x9F, 0xF7FF6800 }, { 0x9F, 0x2000FFD3 }, { 0x9F, 0x6048490E }, { 0x9F, 0x480EBF00 }, { 0x9F, 0x28006800 }, { 0x9F, 0x4810D0FB }, + { 0x9F, 0x28016980 }, { 0x9F, 0x480BD10B }, { 0x9F, 0x490B6802 }, { 0x9F, 0x6800480B }, { 0x9F, 0xF8CEF000 }, { 0x9F, 0xD0022800 }, + { 0x9F, 0x49032000 }, { 0x9F, 0x20016008 }, { 0x9F, 0x60084908 }, { 0x9F, 0xE7FEBF00 }, { 0x9F, 0x20000C04 }, { 0x9F, 0x4001E500 }, + { 0x9F, 0x4001E400 }, { 0x9F, 0x20000C14 }, { 0x9F, 0x20001000 }, { 0x9F, 0x20000C10 }, { 0x9F, 0x20000C00 }, { 0x9F, 0x20000C00 }, + { 0x9F, 0x4841B500 }, { 0x9F, 0xB28069C0 }, { 0x9F, 0x0003381D }, { 0x9F, 0xF90DF000 }, { 0x9F, 0x290D1718 }, { 0x9F, 0x29292929 }, + { 0x9F, 0x2523290F }, { 0x9F, 0x1B192929 }, { 0x9F, 0x2113111F }, { 0x9F, 0x27291529 }, { 0x9F, 0x2001291D }, { 0x9F, 0x2001BD00 }, + { 0x9F, 0x2001E7FC }, { 0x9F, 0x2001E7FA }, { 0x9F, 0x2000E7F8 }, { 0x9F, 0x2001E7F6 }, { 0x9F, 0x2001E7F4 }, { 0x9F, 0x2001E7F2 }, + { 0x9F, 0x2001E7F0 }, { 0x9F, 0x2001E7EE }, { 0x9F, 0x2000E7EC }, { 0x9F, 0x2001E7EA }, { 0x9F, 0x2001E7E8 }, { 0x9F, 0x2001E7E6 }, + { 0x9F, 0x2001E7E4 }, { 0x9F, 0xB500E7E2 }, { 0x9F, 0x69C04827 }, { 0x9F, 0x381DB280 }, { 0x9F, 0xF0000003 }, { 0x9F, 0x1718F8DA }, + { 0x9F, 0x2929290D }, { 0x9F, 0x290F2929 }, { 0x9F, 0x29292523 }, { 0x9F, 0x111F1B19 }, { 0x9F, 0x15292113 }, { 0x9F, 0x291D2729 }, + { 0x9F, 0xBD002001 }, { 0x9F, 0xE7FC2001 }, { 0x9F, 0xE7FA2000 }, { 0x9F, 0xE7F82000 }, { 0x9F, 0xE7F62001 }, { 0x9F, 0xE7F42001 }, + { 0x9F, 0xE7F22000 }, { 0x9F, 0xE7F02000 }, { 0x9F, 0xE7EE2000 }, { 0x9F, 0xE7EC2000 }, { 0x9F, 0xE7EA2001 }, { 0x9F, 0xE7E82001 }, + { 0x9F, 0xE7E62001 }, { 0x9F, 0xE7E42001 }, { 0x9F, 0xE7E22000 }, { 0x9F, 0xF7FFB510 }, { 0x9F, 0x2800FFCA }, { 0x9F, 0x480DD005 }, + { 0x9F, 0x6048490D }, { 0x9F, 0x490D13C8 }, { 0x9F, 0xF7FF6188 }, { 0x9F, 0x2800FF8D }, { 0x9F, 0x2001D009 }, { 0x9F, 0x07092105 }, + { 0x9F, 0x02122207 }, { 0x9F, 0x67C81889 }, { 0x9F, 0x490707C0 }, { 0x9F, 0xBD1060C8 }, { 0x9F, 0x49074806 }, { 0x9F, 0x47706008 }, + { 0x9F, 0x10000040 }, { 0x9F, 0xC007FFDF }, { 0x9F, 0x40000500 }, { 0x9F, 0x40006C00 }, { 0x9F, 0x50000500 }, { 0x9F, 0x00F42400 }, + { 0x9F, 0x20000800 }, { 0x9F, 0x6802480A }, { 0x9F, 0x430A210F }, { 0x9F, 0x48096002 }, { 0x9F, 0x48094780 }, { 0x9F, 0xE7FE4700 }, + { 0x9F, 0xE7FEE7FE }, { 0x9F, 0xE7FEE7FE }, { 0x9F, 0x0000E7FE }, { 0x9F, 0x49064805 }, { 0x9F, 0x4B064A04 }, { 0x9F, 0x00004770 }, + { 0x9F, 0x40000524 }, { 0x9F, 0x200002E9 }, { 0x9F, 0x200000C1 }, { 0x9F, 0x20000868 }, { 0x9F, 0x200008E8 }, { 0x9F, 0x20000868 }, + { 0x9F, 0xB5104603 }, { 0x9F, 0x079B430B }, { 0x9F, 0x2A04D10F }, { 0x9F, 0xC808D30D }, { 0x9F, 0x1F12C910 }, { 0x9F, 0xD0F842A3 }, + { 0x9F, 0xBA21BA18 }, { 0x9F, 0xD9014288 }, { 0x9F, 0xBD102001 }, { 0x9F, 0x43C02000 }, { 0x9F, 0x2A00BD10 }, { 0x9F, 0x07D3D003 }, + { 0x9F, 0x1C52D003 }, { 0x9F, 0x2000E007 }, { 0x9F, 0x7803BD10 }, { 0x9F, 0x1C40780C }, { 0x9F, 0x1B1B1C49 }, { 0x9F, 0x7803D107 }, + { 0x9F, 0x1C40780C }, { 0x9F, 0x1B1B1C49 }, { 0x9F, 0x1E92D101 }, { 0x9F, 0x4618D1F1 }, { 0x9F, 0x4770BD10 }, { 0x9F, 0x47704770 }, + { 0x9F, 0xF0004675 }, { 0x9F, 0x46AEF823 }, { 0x9F, 0x46690005 }, { 0x9F, 0x08C04653 }, { 0x9F, 0x468500C0 }, { 0x9F, 0xB520B018 }, + { 0xBD, 0xFFB0F7FF }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000400 }, { 0x9F, 0x00000000 }, { 0x9F, 0x2700BC60 }, { 0x9F, 0x46B60849 }, + { 0x9F, 0xC5C02600 }, { 0x9F, 0xC5C0C5C0 }, { 0x9F, 0xC5C0C5C0 }, { 0x9F, 0xC5C0C5C0 }, { 0x9F, 0x3D40C5C0 }, { 0x9F, 0x468D0049 }, + { 0x9F, 0x46044770 }, { 0x9F, 0x46C046C0 }, { 0x9F, 0xF7FF4620 }, { 0x9F, 0x0000FE96 }, { 0x9F, 0x47704800 }, { 0x9F, 0x20000804 }, + { 0x9F, 0x20184901 }, { 0x9F, 0xE7FEBEAB }, { 0x9F, 0x00020026 }, { 0x9F, 0xB4304770 }, { 0x9F, 0x1E644674 }, { 0x9F, 0x1C647825 }, + { 0x9F, 0xD30442AB }, { 0x9F, 0x005B5D63 }, { 0x9F, 0xBC3018E3 }, { 0x9F, 0x461D4718 }, { 0x9F, 0x0000E7F8 }, { 0x9F, 0x20000484 }, + { 0x9F, 0x20000800 }, { 0x9F, 0x00000004 }, { 0x9F, 0x20000104 }, { 0x9F, 0x20000488 }, { 0x9F, 0x20000804 }, { 0x9F, 0x000000E4 }, + { 0x9F, 0x20000120 }, { 0x9F, 0x00F42400 }, { 0x9F, 0xFFFF8000 }, { 0x9F, 0xFE7F0000 }, { 0x9F, 0x0026FFFF }, { 0x9F, 0x8009EFEF }, + { 0x9F, 0x00007FFF }, { 0x9F, 0x0080FFFF }, { 0x9F, 0xFFDB0008 }, { 0x9F, 0xFDFA3080 }, { 0x9F, 0x7B760400 }, { 0x9F, 0xFFFF0404 }, + { 0x9F, 0x02107EBF }, { 0x9F, 0x0000AF5F }, { 0x9F, 0x0008BC93 }, { 0xBD, 0x1210FFDF }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20000C00 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000001 }, { 0x9F, 0x00000000 }, { 0x9F, 0xFFFD0490 }, + { 0x9F, 0xBF8F2840 }, { 0x9F, 0xFFFFFFFF }, { 0x9F, 0x00000C30 }, { 0x9F, 0x2200F7DF }, { 0x9F, 0x5000FEBF }, { 0x9F, 0xFFFB0000 }, + { 0x9F, 0xFFFB0200 }, { 0x9F, 0xFF7B4C20 }, { 0x9F, 0xFFFA0A00 }, { 0x9F, 0x0102FFD7 }, { 0x9F, 0x0202F7DF }, { 0x9F, 0x0002FFDE }, + { 0xBD, 0x1048D6D7 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C00 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C04 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C10 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C14 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000C30 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C18 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20001000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x20004000 }, + { 0xBB, 0x00000439 }, { 0xBB, 0x00000475 }, { 0xBB, 0x00000477 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000479 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x0000047B }, { 0xBB, 0x0000047D }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, + { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x00000000 }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, + { 0xBB, 0x0000047F }, { 0xBB, 0x00000199 }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, + { 0xBB, 0x0000047F }, { 0xBD, 0x00000000 }, { 0xB1, 0x00000000 }, { 0x8B, 0x20001080 }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, + { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, + { 0xBB, 0x0000047F }, { 0xBB, 0x0000047F }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x4C06B510 }, { 0xBB, 0x2B007823 }, { 0xBB, 0x4B05D107 }, { 0xBB, 0xD0022B00 }, + { 0xBB, 0xE0004804 }, { 0xBB, 0x2301BF00 }, { 0xBB, 0xBD107023 }, { 0xBB, 0x2000044C }, { 0xBB, 0x00000000 }, { 0xBB, 0x000007D8 }, + { 0xBB, 0x4B08B508 }, { 0xBB, 0xD0032B00 }, { 0xBB, 0x49084807 }, { 0xBB, 0xBF00E000 }, { 0xBB, 0x68034807 }, { 0xBB, 0xD0032B00 }, + { 0xBB, 0x2B004B06 }, { 0xBB, 0x4798D000 }, { 0xBB, 0x46C0BD08 }, { 0xBB, 0x00000000 }, { 0xBB, 0x000007D8 }, { 0xBB, 0x20000450 }, + { 0xBB, 0x20000448 }, { 0xBB, 0x00000000 }, { 0xBB, 0x2B004B16 }, { 0xBB, 0x4B14D100 }, { 0xBB, 0x2240469D }, { 0xBB, 0x1A9A0292 }, + { 0xBB, 0x21004692 }, { 0xBB, 0x460F468B }, { 0xBB, 0x4A144813 }, { 0xBB, 0xF0001A12 }, { 0xBB, 0x4B0FF9D3 }, { 0xBB, 0xD0002B00 }, + { 0xBB, 0x4B0E4798 }, { 0xBB, 0xD0002B00 }, { 0xBB, 0x20004798 }, { 0xBB, 0x00042100 }, { 0xBB, 0x480D000D }, { 0xBB, 0xD0022800 }, + { 0xBB, 0xF000480C }, { 0xBB, 0xF000FAA7 }, { 0xBB, 0x0020F99B }, { 0xBB, 0xF0000029 }, { 0xBB, 0xF000F857 }, { 0xBB, 0x46C0F985 }, + { 0xBB, 0x00080000 }, { 0xBB, 0x20004000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x2000044C }, { 0xBB, 0x2000046C }, + { 0xBB, 0x000006B5 }, { 0xBB, 0x000006C5 }, { 0xBB, 0x22A24B1C }, { 0xBB, 0x58990052 }, { 0xBB, 0x2900B510 }, { 0xBB, 0x21C1D021 }, + { 0xBB, 0x58590089 }, { 0xBB, 0xD51C0388 }, { 0xBB, 0x50992100 }, { 0xBB, 0x58994A16 }, { 0xBB, 0x31FF3101 }, { 0xBB, 0x4B155099 }, + { 0xBB, 0x23FF781A }, { 0xBB, 0xD0114393 }, { 0xBB, 0x1C194A13 }, { 0xBB, 0x480F6013 }, { 0xBB, 0x4C0F4B12 }, { 0xBB, 0x5904781A }, + { 0xBB, 0x2A001909 }, { 0xBB, 0x24A8D012 }, { 0xBB, 0x510100E4 }, { 0xBB, 0x404A2101 }, { 0xBB, 0xBD10701A }, { 0xBB, 0x22084B0A }, + { 0xBB, 0x4806601A }, { 0xBB, 0x4C064B09 }, { 0xBB, 0x5904781A }, { 0xBB, 0x19092108 }, { 0xBB, 0xD1EC2A00 }, { 0xBB, 0x00E424A9 }, + { 0xBB, 0xE7EB5101 }, { 0xBB, 0x4000A000 }, { 0xBB, 0x00000544 }, { 0xBB, 0x50000510 }, { 0xBB, 0x20000004 }, { 0xBB, 0x20000468 }, + { 0xBB, 0x21E023A0 }, { 0xBB, 0x220005DB }, { 0xBB, 0x505A00C9 }, { 0xBB, 0x505A4945 }, { 0xBB, 0x00C921E1 }, { 0xBB, 0x4944505A }, + { 0xBB, 0x21E2505A }, { 0xBB, 0x505A00C9 }, { 0xBB, 0x505A4942 }, { 0xBB, 0x00C921E3 }, { 0xBB, 0x4941505A }, { 0xBB, 0x22E4505A }, + { 0xBB, 0x00D22101 }, { 0xBB, 0x4A3F5099 }, { 0xBB, 0x701121FF }, { 0xBB, 0x21804A3E }, { 0xBB, 0x50990049 }, { 0xBB, 0x4A3E493D }, + { 0xBB, 0x00DB23A2 }, { 0xBB, 0x46C050D1 }, { 0xBB, 0x46C046C0 }, { 0xBB, 0x22014B3A }, { 0xBB, 0x493A601A }, { 0xBB, 0x00D222A2 }, + { 0xBB, 0x46C05099 }, { 0xBB, 0x46C046C0 }, { 0xBB, 0x49384B37 }, { 0xBB, 0x00D222A2 }, { 0xBB, 0x4A335099 }, { 0xBB, 0x48374936 }, + { 0xBB, 0x21A3505A }, { 0xBB, 0x505800C9 }, { 0xBB, 0x48364935 }, { 0xBB, 0x21A4505A }, { 0xBB, 0x505800C9 }, { 0xBB, 0x505A4934 }, + { 0xBB, 0x210722A0 }, { 0xBB, 0x509900D2 }, { 0xBB, 0x22802380 }, { 0xBB, 0x210005DB }, { 0xBB, 0x50990052 }, { 0xBB, 0x60192101 }, + { 0xBB, 0x29005899 }, { 0xBB, 0x4B2DD0FC }, { 0xBB, 0x2200492D }, { 0xBB, 0x21A1505A }, { 0xBB, 0x505A00C9 }, { 0xBB, 0x00D222A2 }, + { 0xBB, 0x50992106 }, { 0xBB, 0x60DA2201 }, { 0xBB, 0x781A4B28 }, { 0xBB, 0x439323FF }, { 0xBB, 0x4B27D122 }, { 0xBB, 0x601A2208 }, + { 0xBB, 0x00522284 }, { 0xBB, 0x21A84B21 }, { 0xBB, 0x505A00C9 }, { 0xBB, 0x21804A23 }, { 0xBB, 0x50990049 }, { 0xBB, 0x210022A9 }, + { 0xBB, 0x509900D2 }, { 0xBB, 0x22C12180 }, { 0xBB, 0x00920289 }, { 0xBB, 0x23805099 }, { 0xBB, 0x05DB2201 }, { 0xBB, 0x4B1C679A }, + { 0xBB, 0x00D22280 }, { 0xBB, 0xB662601A }, { 0xBB, 0x22014B14 }, { 0xBB, 0xE7FE601A }, { 0xBB, 0x60134A15 }, { 0xBB, 0x32FF1C5A }, + { 0xBB, 0x46C0E7DC }, { 0xBB, 0x00000704 }, { 0xBB, 0x0000070C }, { 0xBB, 0x00000714 }, { 0xBB, 0x0000071C }, { 0xBB, 0x5000050C }, + { 0xBB, 0x0000050C }, { 0xBB, 0x00021F03 }, { 0xBB, 0x40006000 }, { 0xBB, 0x00030803 }, { 0xBB, 0x4001F000 }, { 0xBB, 0x4000A140 }, + { 0xBB, 0x00000514 }, { 0xBB, 0x4000A144 }, { 0xBB, 0x0000051C }, { 0xBB, 0x4000A148 }, { 0xBB, 0x00000524 }, { 0xBB, 0x4000A000 }, + { 0xBB, 0x00000504 }, { 0xBB, 0x50000510 }, { 0xBB, 0x20000004 }, { 0xBB, 0x00000544 }, { 0xBB, 0xE000E100 }, { 0xBB, 0x4B024A01 }, + { 0xBB, 0x4770601A }, { 0xBB, 0x00F42400 }, { 0xBB, 0x20000008 }, { 0xBB, 0x781B4B1B }, { 0xBB, 0xD0002B01 }, { 0xBB, 0x4B1A4770 }, + { 0xBB, 0x071A681B }, { 0xBB, 0x4A19D1FA }, { 0xBB, 0x681223F0 }, { 0xBB, 0xD003401A }, { 0xBB, 0xD0012A10 }, { 0xBB, 0xD1032A30 }, + { 0xBB, 0x68124A15 }, { 0xBB, 0xD010421A }, { 0xBB, 0x23F04A12 }, { 0xBB, 0x401A6812 }, { 0xBB, 0xD1E72A40 }, { 0xBB, 0x68124A10 }, + { 0xBB, 0xD1E3421A }, { 0xBB, 0x228023C1 }, { 0xBB, 0x00DB2101 }, { 0xBB, 0x50D105D2 }, { 0xBB, 0x4A0CE7DC }, { 0xBB, 0x601A4B0C }, + { 0xBD, 0x00000000 }, { 0xB1, 0x00000000 }, { 0x8B, 0x20001400 }, { 0xBB, 0x22804B0C }, { 0xBB, 0x601A0212 }, { 0xBB, 0x781B4B04 }, + { 0xBB, 0xD1D12B01 }, { 0xBB, 0x681B4B03 }, { 0xBB, 0xD0DF071A }, { 0xBB, 0x46C0E7CC }, { 0xBB, 0xF0000FE0 }, { 0xBB, 0xF0000FE4 }, + { 0xBB, 0xF0000FE8 }, { 0xBB, 0xF0000FEC }, { 0xBB, 0xC007FFDF }, { 0xBB, 0x40000504 }, { 0xBB, 0x40006C18 }, { 0xBB, 0x68024808 }, + { 0xBB, 0x430A2103 }, { 0xBB, 0x49076002 }, { 0xBB, 0x4B084A07 }, { 0xBB, 0xDD031A9B }, { 0xBB, 0x58C83B04 }, { 0xBB, 0xDCFB50D0 }, + { 0xBB, 0x47804805 }, { 0xBB, 0x47004805 }, { 0xBB, 0x40000524 }, { 0xBB, 0x000007E4 }, { 0xBB, 0x20000000 }, { 0xBB, 0x2000044C }, + { 0xBB, 0x000003AD }, { 0xBB, 0x00000121 }, { 0xBB, 0xE7FEE7FE }, { 0xBB, 0xE7FEE7FE }, { 0xBB, 0xE7FEE7FE }, { 0xBB, 0x2100B510 }, + { 0xBB, 0xF0001C04 }, { 0xBB, 0x4B04F889 }, { 0xBB, 0x6BC36818 }, { 0xBB, 0xD0002B00 }, { 0xBB, 0x1C204798 }, { 0xBB, 0xF98CF000 }, + { 0xBB, 0x000007D4 }, { 0xBB, 0x4E0DB570 }, { 0xBB, 0x24004D0D }, { 0xBB, 0x10AD1BAD }, { 0xBB, 0x00A3D005 }, { 0xBB, 0x340158F3 }, + { 0xBB, 0x42A54798 }, { 0xBB, 0xF000D1F9 }, { 0xBB, 0x4E08F97D }, { 0xBB, 0x24004D08 }, { 0xBB, 0x10AD1BAD }, { 0xBB, 0x00A3D005 }, + { 0xBB, 0x340158F3 }, { 0xBB, 0x42A54798 }, { 0xBB, 0xBD70D1F9 }, { 0xBB, 0x2000043C }, { 0xBB, 0x2000043C }, { 0xBB, 0x2000043C }, + { 0xBB, 0x20000444 }, { 0xBB, 0x0783B5F0 }, { 0xBB, 0x1E54D046 }, { 0xBB, 0xD0422A00 }, { 0xBB, 0x1C03B2CE }, { 0xBB, 0xE0032503 }, + { 0xBB, 0x2C001E62 }, { 0xBB, 0x1C14D03B }, { 0xBB, 0x1E5A3301 }, { 0xBB, 0x422B7016 }, { 0xBB, 0x2C03D1F6 }, { 0xBB, 0x25FFD92B }, + { 0xBB, 0x022A400D }, { 0xBB, 0x042A4315 }, { 0xBB, 0x2C0F4315 }, { 0xBB, 0x1C27D915 }, { 0xBB, 0x093F3F10 }, { 0xBB, 0x013A1C1E }, + { 0xBB, 0x18B63610 }, { 0xBB, 0x60151C1A }, { 0xBB, 0x60956055 }, { 0xBB, 0x321060D5 }, { 0xBB, 0xD1F842B2 }, { 0xBB, 0x013F3701 }, + { 0xBB, 0x19DB220F }, { 0xBB, 0x2C034014 }, { 0xBB, 0x1F27D90D }, { 0xBB, 0x00BA08BF }, { 0xBB, 0x18B61D1E }, { 0xBB, 0xC2201C1A }, + { 0xBB, 0xD1FC42B2 }, { 0xBB, 0x00BF3701 }, { 0xBB, 0x19DB2203 }, { 0xBB, 0x2C004014 }, { 0xBB, 0x191CD005 }, { 0xBB, 0x7019B2C9 }, + { 0xBB, 0x42A33301 }, { 0xBB, 0xBDF0D1FB }, { 0xBB, 0x1C031C14 }, { 0xBB, 0x46C0E7C5 }, { 0xBB, 0x4B03B508 }, { 0xBB, 0xD0022B00 }, + { 0xBB, 0xF0004802 }, { 0xBB, 0xBD08F891 }, { 0xBB, 0x00000000 }, { 0xBB, 0x000006C5 }, { 0xBB, 0x465FB5F0 }, { 0xBB, 0x464D4656 }, + { 0xBB, 0xB4F04644 }, { 0xBB, 0xB0854B40 }, { 0xBB, 0x9002681B }, { 0xBB, 0x33499301 }, { 0xBB, 0x930333FF }, { 0xBB, 0x98011C0F }, + { 0xBB, 0x004921A4 }, { 0xBB, 0x46905842 }, { 0xBB, 0xD04A2A00 }, { 0xBB, 0x46819803 }, { 0xBB, 0x684E4641 }, { 0xBB, 0xD4411E74 }, + { 0xBB, 0x00A34645 }, { 0xBB, 0x18ED3588 }, { 0xBB, 0x23C420C6 }, { 0xBB, 0x005B3601 }, { 0xBB, 0x00B60040 }, { 0xBB, 0x4682469B }, + { 0xBB, 0x44C34446 }, { 0xBB, 0xE00844C2 }, { 0xBB, 0x33801C2B }, { 0xBB, 0x42BB681B }, { 0xBB, 0x3D04D005 }, { 0xBB, 0x3C013E04 }, + { 0xBB, 0x2F00D328 }, { 0xBB, 0x4641D1F4 }, { 0xBB, 0x6833684A }, { 0xBB, 0x42A23A01 }, { 0xBB, 0x2200D02C }, { 0xBB, 0x2B006032 }, + { 0xBB, 0x4640D0EF }, { 0xBB, 0x68404659 }, { 0xBB, 0x68092201 }, { 0xBB, 0x900040A2 }, { 0xBB, 0xD01D4211 }, { 0xBB, 0x68004650 }, + { 0xBB, 0xD11D4210 }, { 0xBB, 0x68299802 }, { 0xBB, 0x46414798 }, { 0xBB, 0x9A006849 }, { 0xBB, 0xD1B84291 }, { 0xBB, 0x6812464A }, + { 0xBB, 0xD1B44542 }, { 0xBB, 0x3E043D04 }, { 0xBB, 0xD2D63C01 }, { 0xBB, 0x2A004A15 }, { 0xBB, 0xB005D10D }, { 0xBB, 0x4690BC3C }, + { 0xBB, 0x46A24699 }, { 0xBB, 0xBDF046AB }, { 0xBB, 0xE7E64798 }, { 0xBB, 0xE7D2604C }, { 0xBB, 0x47986828 }, { 0xBB, 0x4643E7E1 }, + { 0xBB, 0x4640685B }, { 0xBB, 0xD10D2B00 }, { 0xBB, 0x2B006803 }, { 0xBB, 0x4649D00E }, { 0xBB, 0xE000600B }, { 0xBB, 0x464BBF00 }, + { 0xBB, 0x4690681A }, { 0xBB, 0x29004641 }, { 0xBB, 0xE7DED196 }, { 0xBB, 0x46C16803 }, { 0xBB, 0xE7F74698 }, { 0xBB, 0xE7FA2300 }, + { 0xBB, 0x000007D4 }, { 0xBB, 0x00000000 }, { 0xBB, 0x1C01B508 }, { 0xBB, 0x20002200 }, { 0xBB, 0xF0002300 }, { 0xBB, 0xBD08F819 }, + { 0xBB, 0x4B09B538 }, { 0xBB, 0x1AED4D09 }, { 0xBB, 0xD00910AD }, { 0xBB, 0x00AC3D01 }, { 0xBB, 0xE00018E4 }, { 0xBB, 0x68233D01 }, + { 0xBB, 0x3C044798 }, { 0xBB, 0xD1F92D00 }, { 0xBB, 0xF86EF000 }, { 0xBB, 0x46C0BD38 }, { 0xBB, 0x20000444 }, { 0xBB, 0x20000448 }, + { 0xBB, 0x464FB5F0 }, { 0xBB, 0xB4C04646 }, { 0xBB, 0x4B2B4698 }, { 0xBB, 0x681B25A4 }, { 0xBB, 0x595C006D }, { 0xBB, 0x1C06B083 }, + { 0xBB, 0x46911C0F }, { 0xBB, 0x2C009301 }, { 0xBB, 0x6865D044 }, { 0xBB, 0xDD1A2D1F }, { 0xBB, 0x2B004B24 }, { 0xBB, 0x2001D102 }, + { 0xBB, 0xE01C4240 }, { 0xBB, 0x004020C8 }, { 0xBB, 0xBF00E000 }, { 0xBB, 0xD0F61E04 }, { 0xBB, 0x60452500 }, { 0xBB, 0x980123A4 }, + { 0xBB, 0x58C0005B }, { 0xBB, 0x60209901 }, { 0xBB, 0x23C450CC }, { 0xBB, 0x50E5005B }, { 0xBB, 0x005B23C6 }, { 0xBB, 0x2E0050E5 }, + { 0xBB, 0x1C6BD10A }, { 0xBB, 0x00AD3502 }, { 0xBB, 0x20006063 }, { 0xBB, 0xB003512F }, { 0xBB, 0x4690BC0C }, { 0xBB, 0xBDF04699 }, + { 0xBB, 0x18E300AB }, { 0xBB, 0x46482288 }, { 0xBB, 0x20C45098 }, { 0xBB, 0x18220040 }, { 0xBB, 0x21016810 }, { 0xBB, 0x430840A9 }, + { 0xBB, 0x22846010 }, { 0xBB, 0x46400052 }, { 0xBB, 0x2E025098 }, { 0xBB, 0x22C6D1E1 }, { 0xBB, 0x18A30052 }, { 0xBB, 0x43016818 }, + { 0xBB, 0xE7DA6019 }, { 0xBB, 0x344D1C1C }, { 0xBB, 0x515C34FF }, { 0xBB, 0x46C0E7B5 }, { 0xBB, 0x000007D4 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x46C0E7FE }, { 0xBB, 0x46C0B5F8 }, { 0xBB, 0xBC08BCF8 }, { 0xBD, 0x00000000 }, { 0xB1, 0x00000000 }, { 0x8B, 0x200017C0 }, + { 0xBB, 0x4770469E }, { 0xBB, 0x46C0B5F8 }, { 0xBB, 0xBC08BCF8 }, { 0xBB, 0x4770469E }, { 0xBB, 0x00000043 }, { 0xBB, 0x20000010 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x7FFFF944 }, { 0xBB, 0x00000001 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000008 }, { 0xBB, 0x00F42400 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x200002FC }, { 0xBB, 0x20000364 }, { 0xBD, 0x00000000 }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20001800 }, { 0xBB, 0x200003CC }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x000007D0 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000001 }, { 0xBB, 0x00000000 }, + { 0xBB, 0xABCD330E }, { 0xBB, 0xE66D1234 }, { 0xBB, 0x0005DEEC }, { 0xBB, 0x0000000B }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, + { 0xB1, 0x00000000 }, { 0x8B, 0x20001C00 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, + { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x00000000 }, { 0xBB, 0x20000010 }, { 0xBB, 0x00000585 }, { 0xBB, 0x000000E9 }, + { 0xBB, 0x000000C1 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001004 }, + { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, + { 0xA3, 0x23000012 }, { 0xB1, 0x00000010 }, { 0x93, 0x20000340 }, { 0x8B, 0x0001000F }, { 0x93, 0x200008E8 }, { 0x8B, 0x00010011 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000ED30 }, { 0xA3, 0x23000002 }, { 0xBB, 0x0000001F }, + { 0x8B, 0xE000EDF0 }, { 0xBB, 0xA05F0003 }, { 0xBB, 0xA05F0001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000002 }, { 0xBB, 0xA05F0003 }, { 0x9F, 0x00000000 }, { 0x9F, 0x01030003 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xB1, 0x00000010 }, { 0x8B, 0x00000000 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x00000001 }, { 0x8B, 0x00000001 }, { 0xB7, 0x00000000 }, { 0xBD, 0x20000C00 }, { 0x8B, 0x00000002 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x000000C1 }, { 0x8B, 0x00000003 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x8B, 0x00000004 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x20000484 }, { 0x8B, 0x00000005 }, { 0xB7, 0x00000000 }, { 0xBD, 0x20000804 }, { 0x8B, 0x00000006 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x8B, 0x00000007 }, { 0xB7, 0x00000000 }, { 0xBD, 0x00000000 }, { 0x8B, 0x00000008 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000009 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000A }, { 0xB7, 0x00000000 }, + { 0xBD, 0x20000484 }, { 0x8B, 0x0000000B }, { 0xB7, 0x00000000 }, { 0xBD, 0x20000484 }, { 0x8B, 0x0000000C }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000E }, { 0xB7, 0x00000000 }, { 0xBD, 0x200001C3 }, { 0x8B, 0x0000000F }, { 0xB7, 0x00000000 }, + { 0xBD, 0x200001FA }, { 0x8B, 0x00000010 }, { 0xB7, 0x00000000 }, { 0xBD, 0x01000000 }, { 0x8B, 0x00000011 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x200008E8 }, { 0x8B, 0x00000012 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFC }, { 0x8B, 0x00000014 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0x20000C00 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0x9F, 0x00000001 }, { 0x9F, 0x00000001 }, { 0x9F, 0xFFFD0490 }, { 0x9F, 0xBF8F2840 }, { 0x9F, 0x00000000 }, { 0x9F, 0x00000C30 }, + { 0x9F, 0x00000000 }, { 0x9F, 0x5000FEBF }, { 0x9F, 0xFFFB0000 }, { 0x9F, 0xFFFB0200 }, { 0x9F, 0xFF7B4C20 }, { 0x9F, 0xFFFA0A00 }, + { 0x9F, 0x0102FFD7 }, { 0x9F, 0x0202F7DF }, { 0x9F, 0x0002FFDE }, { 0xBD, 0x1048D6D7 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20001000 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x20004000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0x20001000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x20004000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xBB, 0xA05F0003 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, + { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, { 0xBB, 0x01000001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000ED0C }, { 0xA3, 0x23000012 }, { 0xBB, 0x05FA0004 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x03030003 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xBB, 0xA05F0003 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, { 0xBB, 0x01000000 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, { 0xBD, 0x00030003 }, { 0x81, 0x0000001E }, + { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDF0 }, { 0xA3, 0x23000012 }, { 0xB1, 0x00000010 }, { 0x8B, 0x00000000 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000001 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000002 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000003 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000004 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000005 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000006 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000007 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000008 }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x00000009 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000A }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000B }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000C }, { 0xB7, 0x00000000 }, + { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000E }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFF }, { 0x8B, 0x0000000F }, { 0xB7, 0x00000000 }, + { 0xBD, 0x00000438 }, { 0x8B, 0x00000010 }, { 0xB7, 0x00000000 }, { 0xBD, 0xC1000000 }, { 0x8B, 0x00000011 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x20004000 }, { 0x8B, 0x00000012 }, { 0xB7, 0x00000000 }, { 0xBD, 0xFFFFFFFC }, { 0x8B, 0x00000014 }, { 0xB7, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0002000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000003 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000EDFC }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x01000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001000 }, { 0xA3, 0x23000012 }, { 0x9F, 0x00000000 }, + { 0xBD, 0x20000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001000 }, { 0xA3, 0x23000012 }, { 0xBB, 0x20000001 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE0001004 }, { 0xA3, 0x23000012 }, { 0xBB, 0x00000000 }, + { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xB1, 0x00000000 }, { 0x8B, 0xE000ED30 }, { 0xA3, 0x23000002 }, { 0xBB, 0x0000001F }, + { 0x8B, 0xE000EDF0 }, { 0xBB, 0xA05F0003 }, { 0xBB, 0xA05F0001 }, { 0xBD, 0x00000000 }, { 0x81, 0x0000001E }, { 0xA9, 0x00000001 }, + { 0x00, 0x00000000 }, }; SWDSimulationDataGenerator::SWDSimulationDataGenerator() -{} +{ +} SWDSimulationDataGenerator::~SWDSimulationDataGenerator() -{} +{ +} -void SWDSimulationDataGenerator::Initialize(U32 simulation_sample_rate, SWDAnalyzerSettings* settings) +void SWDSimulationDataGenerator::Initialize( U32 simulation_sample_rate, SWDAnalyzerSettings* settings ) { - mSimulationSampleRateHz = simulation_sample_rate; - mSettings = settings; + mSimulationSampleRateHz = simulation_sample_rate; + mSettings = settings; - mClockGenerator.Init(simulation_sample_rate / 10, simulation_sample_rate); + mClockGenerator.Init( simulation_sample_rate / 10, simulation_sample_rate ); - mSWDIO = mSWDSimulationChannels.Add(settings->mSWDIO, mSimulationSampleRateHz, BIT_LOW); - mSWCLK = mSWDSimulationChannels.Add(settings->mSWCLK, mSimulationSampleRateHz, BIT_LOW); + mSWDIO = mSWDSimulationChannels.Add( settings->mSWDIO, mSimulationSampleRateHz, BIT_LOW ); + mSWCLK = mSWDSimulationChannels.Add( settings->mSWCLK, mSimulationSampleRateHz, BIT_LOW ); - // start from the end to force a line reset in GenerateSimulationData - mSimulCnt = sizeof(simul_data) / sizeof(SimulationData) - 1; + // start from the end to force a line reset in GenerateSimulationData + mSimulCnt = sizeof( simul_data ) / sizeof( SimulationData ) - 1; } -U32 SWDSimulationDataGenerator::GenerateSimulationData(U64 largest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels) +U32 SWDSimulationDataGenerator::GenerateSimulationData( U64 largest_sample_requested, U32 sample_rate, + SimulationChannelDescriptor** simulation_channels ) { - U64 adjusted_largest_sample_requested = AnalyzerHelpers::AdjustSimulationTargetSample(largest_sample_requested, sample_rate, mSimulationSampleRateHz); - - // while the caller needs more samples - while (mSWCLK->GetCurrentSampleNumber() < adjusted_largest_sample_requested) - { - // if we've reached the end of the array of data - if (simul_data[mSimulCnt].request == 0) - { - // pause, reset and restart the data - AdvanceAllBySec(0.01); - OutputLineReset(); - mSimulCnt = 0; - } - - // shortcut to the simulated data object - const SimulationData& sim(simul_data[mSimulCnt]); - - // the request and ACK with turnarounds - // we need the first data bit to prepare the data line - bool is_write = OutputRequest(sim.request, ACK_OK, (sim.data & 1) ? BIT_HIGH : BIT_LOW); - OutputData(sim.data, is_write); // the WData part with parity - - mSimulCnt++; - - // have we reached the end of the data? - if (simul_data[mSimulCnt].request == 0) - { - // show a fault and wait response - OutputRequest(0xA5, ACK_FAULT, BIT_HIGH); - AdvanceAllBySec(TENTH_US * 100); - OutputRequest(0xB1, ACK_WAIT, BIT_LOW); - AdvanceAllBySec(TENTH_US * 100); - } - } - - *simulation_channels = mSWDSimulationChannels.GetArray(); - - return mSWDSimulationChannels.GetCount(); + U64 adjusted_largest_sample_requested = + AnalyzerHelpers::AdjustSimulationTargetSample( largest_sample_requested, sample_rate, mSimulationSampleRateHz ); + + // while the caller needs more samples + while( mSWCLK->GetCurrentSampleNumber() < adjusted_largest_sample_requested ) + { + // if we've reached the end of the array of data + if( simul_data[ mSimulCnt ].request == 0 ) + { + // pause, reset and restart the data + AdvanceAllBySec( 0.01 ); + OutputLineReset(); + mSimulCnt = 0; + } + + // shortcut to the simulated data object + const SimulationData& sim( simul_data[ mSimulCnt ] ); + + // the request and ACK with turnarounds + // we need the first data bit to prepare the data line + bool is_write = OutputRequest( sim.request, ACK_OK, ( sim.data & 1 ) ? BIT_HIGH : BIT_LOW ); + OutputData( sim.data, is_write ); // the WData part with parity + + mSimulCnt++; + + // have we reached the end of the data? + if( simul_data[ mSimulCnt ].request == 0 ) + { + // show a fault and wait response + OutputRequest( 0xA5, ACK_FAULT, BIT_HIGH ); + AdvanceAllBySec( TENTH_US * 100 ); + OutputRequest( 0xB1, ACK_WAIT, BIT_LOW ); + AdvanceAllBySec( TENTH_US * 100 ); + } + } + + *simulation_channels = mSWDSimulationChannels.GetArray(); + + return mSWDSimulationChannels.GetCount(); } -void SWDSimulationDataGenerator::OutputWriteBit(BitState state) +void SWDSimulationDataGenerator::OutputWriteBit( BitState state ) { - mSWDIO->TransitionIfNeeded(state); + mSWDIO->TransitionIfNeeded( state ); - AdvanceAllBySec(TENTH_US * 3); + AdvanceAllBySec( TENTH_US * 3 ); - mSWCLK->Transition(); // CLK goes high - AdvanceAllBySec(TENTH_US * 4); - mSWCLK->Transition(); // CLK goes low + mSWCLK->Transition(); // CLK goes high + AdvanceAllBySec( TENTH_US * 4 ); + mSWCLK->Transition(); // CLK goes low - AdvanceAllBySec(TENTH_US * 3); + AdvanceAllBySec( TENTH_US * 3 ); } -void SWDSimulationDataGenerator::OutputReadBit(BitState first_half, BitState second_half) +void SWDSimulationDataGenerator::OutputReadBit( BitState first_half, BitState second_half ) { - mSWDIO->TransitionIfNeeded(first_half); + mSWDIO->TransitionIfNeeded( first_half ); - AdvanceAllBySec(TENTH_US * 3); + AdvanceAllBySec( TENTH_US * 3 ); - mSWCLK->Transition(); // CLK goes high - AdvanceAllBySec(TENTH_US * 2); - mSWDIO->TransitionIfNeeded(second_half); - AdvanceAllBySec(TENTH_US * 2); - mSWCLK->Transition(); // CLK goes low + mSWCLK->Transition(); // CLK goes high + AdvanceAllBySec( TENTH_US * 2 ); + mSWDIO->TransitionIfNeeded( second_half ); + AdvanceAllBySec( TENTH_US * 2 ); + mSWCLK->Transition(); // CLK goes low - AdvanceAllBySec(TENTH_US * 3); + AdvanceAllBySec( TENTH_US * 3 ); } void SWDSimulationDataGenerator::OutputLineReset() { - int cnt; + int cnt; - // 55 ones - for (cnt = 0; cnt < 55; ++cnt) - OutputWriteBit(BIT_HIGH); + // 55 ones + for( cnt = 0; cnt < 55; ++cnt ) + OutputWriteBit( BIT_HIGH ); - // 10 zeros - for (cnt = 0; cnt < 10; ++cnt) - OutputWriteBit(BIT_LOW); + // 10 zeros + for( cnt = 0; cnt < 10; ++cnt ) + OutputWriteBit( BIT_LOW ); - // pause - AdvanceAllBySec(TENTH_US * 50); + // pause + AdvanceAllBySec( TENTH_US * 50 ); } -void SWDSimulationDataGenerator::OutputTurnaround(BitState state) +void SWDSimulationDataGenerator::OutputTurnaround( BitState state ) { - AdvanceAllBySec(TENTH_US * 10); - OutputWriteBit(state); - AdvanceAllBySec(TENTH_US * 10); + AdvanceAllBySec( TENTH_US * 10 ); + OutputWriteBit( state ); + AdvanceAllBySec( TENTH_US * 10 ); } -bool SWDSimulationDataGenerator::OutputRequest(U8 req, U8 ack, BitState first_data_bit) +bool SWDSimulationDataGenerator::OutputRequest( U8 req, U8 ack, BitState first_data_bit ) { - bool is_write = (req & 0x04) == 0; + bool is_write = ( req & 0x04 ) == 0; - // the request - U8 bmask; - for (bmask = 1; bmask != 0; bmask <<= 1) - OutputWriteBit((req & bmask) ? BIT_HIGH : BIT_LOW); + // the request + U8 bmask; + for( bmask = 1; bmask != 0; bmask <<= 1 ) + OutputWriteBit( ( req & bmask ) ? BIT_HIGH : BIT_LOW ); - // turnaround - OutputTurnaround((req & 0x80) ? BIT_HIGH : BIT_LOW); + // turnaround + OutputTurnaround( ( req & 0x80 ) ? BIT_HIGH : BIT_LOW ); - // ack - BitState s1((ack & 1) ? BIT_HIGH : BIT_LOW); - BitState s2((ack & 2) ? BIT_HIGH : BIT_LOW); - BitState s3((ack & 4) ? BIT_HIGH : BIT_LOW); + // ack + BitState s1( ( ack & 1 ) ? BIT_HIGH : BIT_LOW ); + BitState s2( ( ack & 2 ) ? BIT_HIGH : BIT_LOW ); + BitState s3( ( ack & 4 ) ? BIT_HIGH : BIT_LOW ); - OutputReadBit(s1, s2); - OutputReadBit(s2, s3); - OutputReadBit(s3, first_data_bit); + OutputReadBit( s1, s2 ); + OutputReadBit( s2, s3 ); + OutputReadBit( s3, first_data_bit ); - // turnaround (if needed) - if (is_write && ack == ACK_OK) - OutputTurnaround(first_data_bit); + // turnaround (if needed) + if( is_write && ack == ACK_OK ) + OutputTurnaround( first_data_bit ); - return is_write; + return is_write; } -void SWDSimulationDataGenerator::OutputData(U32 data, bool is_write) +void SWDSimulationDataGenerator::OutputData( U32 data, bool is_write ) { - // the 32 data bits - U32 bmask; - U8 num_bits = 0; - BitState parity_bit, next_bit; - for (bmask = 1; bmask != 0; bmask <<= 1) - { - const bool is_last_bit = bmask == 0x80000000; - - if (data & bmask) - ++num_bits; - - if (is_last_bit) - parity_bit = (num_bits & 1) ? BIT_HIGH : BIT_LOW; - - if (is_write) - { - OutputWriteBit((data & bmask) ? BIT_HIGH : BIT_LOW); - } else { - if (is_last_bit) - next_bit = parity_bit; - else - next_bit = (data & (bmask << 1)) ? BIT_HIGH : BIT_LOW; - - OutputReadBit((data & bmask) ? BIT_HIGH : BIT_LOW, next_bit); - } - } - - // data parity - OutputWriteBit(parity_bit); - - // trailing zeros - for (num_bits = 0; num_bits < 10; ++num_bits) - OutputWriteBit(BIT_LOW); - - // pause - AdvanceAllBySec(TENTH_US * 50); + // the 32 data bits + U32 bmask; + U8 num_bits = 0; + BitState parity_bit, next_bit; + for( bmask = 1; bmask != 0; bmask <<= 1 ) + { + const bool is_last_bit = bmask == 0x80000000; + + if( data & bmask ) + ++num_bits; + + if( is_last_bit ) + parity_bit = ( num_bits & 1 ) ? BIT_HIGH : BIT_LOW; + + if( is_write ) + { + OutputWriteBit( ( data & bmask ) ? BIT_HIGH : BIT_LOW ); + } + else + { + if( is_last_bit ) + next_bit = parity_bit; + else + next_bit = ( data & ( bmask << 1 ) ) ? BIT_HIGH : BIT_LOW; + + OutputReadBit( ( data & bmask ) ? BIT_HIGH : BIT_LOW, next_bit ); + } + } + + // data parity + OutputWriteBit( parity_bit ); + + // trailing zeros + for( num_bits = 0; num_bits < 10; ++num_bits ) + OutputWriteBit( BIT_LOW ); + + // pause + AdvanceAllBySec( TENTH_US * 50 ); } diff --git a/src/SWDSimulationDataGenerator.h b/src/SWDSimulationDataGenerator.h index 3f92a02..b88072c 100644 --- a/src/SWDSimulationDataGenerator.h +++ b/src/SWDSimulationDataGenerator.h @@ -9,39 +9,38 @@ class SWDAnalyzerSettings; class SWDSimulationDataGenerator { -public: - SWDSimulationDataGenerator(); - ~SWDSimulationDataGenerator(); - - void Initialize(U32 simulation_sample_rate, SWDAnalyzerSettings* settings); - U32 GenerateSimulationData(U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels); - -protected: - SWDAnalyzerSettings* mSettings; - U32 mSimulationSampleRateHz; - U32 mSimulCnt; - - void AdvanceAllBySec(double sec) - { - mSWDSimulationChannels.AdvanceAll(mClockGenerator.AdvanceByTimeS(sec)); - } - - // read and write in this context is a bit read or written from the perspective of the host - void OutputWriteBit(BitState state); - void OutputReadBit(BitState first_half, BitState second_half); - - void OutputTurnaround(BitState state); - bool OutputRequest(U8 req, U8 ack, BitState first_data_bit); - void OutputData(U32 data, bool is_write); - void OutputLineReset(); - -protected: - - ClockGenerator mClockGenerator; - - SimulationChannelDescriptorGroup mSWDSimulationChannels; - SimulationChannelDescriptor* mSWDIO; - SimulationChannelDescriptor* mSWCLK; + public: + SWDSimulationDataGenerator(); + ~SWDSimulationDataGenerator(); + + void Initialize( U32 simulation_sample_rate, SWDAnalyzerSettings* settings ); + U32 GenerateSimulationData( U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels ); + + protected: + SWDAnalyzerSettings* mSettings; + U32 mSimulationSampleRateHz; + U32 mSimulCnt; + + void AdvanceAllBySec( double sec ) + { + mSWDSimulationChannels.AdvanceAll( mClockGenerator.AdvanceByTimeS( sec ) ); + } + + // read and write in this context is a bit read or written from the perspective of the host + void OutputWriteBit( BitState state ); + void OutputReadBit( BitState first_half, BitState second_half ); + + void OutputTurnaround( BitState state ); + bool OutputRequest( U8 req, U8 ack, BitState first_data_bit ); + void OutputData( U32 data, bool is_write ); + void OutputLineReset(); + + protected: + ClockGenerator mClockGenerator; + + SimulationChannelDescriptorGroup mSWDSimulationChannels; + SimulationChannelDescriptor* mSWDIO; + SimulationChannelDescriptor* mSWCLK; }; -#endif // SWD_SIMULATION_DATA_GENERATOR_H +#endif // SWD_SIMULATION_DATA_GENERATOR_H diff --git a/src/SWDTypes.cpp b/src/SWDTypes.cpp index ecbd89f..cf889fa 100644 --- a/src/SWDTypes.cpp +++ b/src/SWDTypes.cpp @@ -10,460 +10,484 @@ #include "SWDTypes.h" #include "SWDUtils.h" -const int TRAN_REQ_AND_ACK = 8 + 1 + 3; // request/turnaround/ACK -const int TRAN_READ_LENGTH = TRAN_REQ_AND_ACK + 33; // previous + 32bit data + parity -const int TRAN_WRITE_LENGTH = TRAN_READ_LENGTH + 1; // previous + one bit for turnaround +const int TRAN_REQ_AND_ACK = 8 + 1 + 3; // request/turnaround/ACK +const int TRAN_READ_LENGTH = TRAN_REQ_AND_ACK + 33; // previous + 32bit data + parity +const int TRAN_WRITE_LENGTH = TRAN_READ_LENGTH + 1; // previous + one bit for turnaround S64 SWDBit::GetMinStartEnd() const { - S64 s = (rising - low_start) / 2; - S64 e = (low_end - falling) / 2; - return s < e ? s : e; + S64 s = ( rising - low_start ) / 2; + S64 e = ( low_end - falling ) / 2; + return s < e ? s : e; } S64 SWDBit::GetStartSample() const { - return rising - GetMinStartEnd() + 1; + return rising - GetMinStartEnd() + 1; } S64 SWDBit::GetEndSample() const { - return falling + GetMinStartEnd() - 1; + return falling + GetMinStartEnd() - 1; } Frame SWDBit::MakeFrame() { - Frame f; + Frame f; - f.mType = SWDFT_Bit; - f.mFlags = 0; - f.mStartingSampleInclusive = GetStartSample(); - f.mEndingSampleInclusive = GetEndSample(); + f.mType = SWDFT_Bit; + f.mFlags = 0; + f.mStartingSampleInclusive = GetStartSample(); + f.mEndingSampleInclusive = GetEndSample(); - f.mData1 = state_rising == BIT_HIGH ? 1 : 0; - f.mData2 = 0; + f.mData1 = state_rising == BIT_HIGH ? 1 : 0; + f.mData2 = 0; - return f; + return f; } // ******************************************************************************** std::string SWDRequestFrame::GetRegisterName() const { - return ::GetRegisterName(GetRegister()); + return ::GetRegisterName( GetRegister() ); } // ******************************************************************************** void SWDOperation::Clear() { - RnW = APnDP = parity_read = data_parity_ok = false; - addr = parity_read = request_byte = ACK = data_parity = data = 0; - reg = SWDR_undefined; + RnW = APnDP = parity_read = data_parity_ok = false; + addr = parity_read = request_byte = ACK = data_parity = data = 0; + reg = SWDR_undefined; - bits.clear(); + bits.clear(); } -void SWDOperation::AddFrames(SWDAnalyzerResults* pResults) +void SWDOperation::AddFrames( SWDAnalyzerResults* pResults ) { - Frame f; - - assert(bits.size() >= TRAN_REQ_AND_ACK); - - // request - SWDRequestFrame req; - req.mStartingSampleInclusive = bits[0].GetStartSample(); - req.mEndingSampleInclusive = bits[7].GetEndSample(); - req.mFlags = (IsRead() ? SWDRequestFrame::IS_READ : 0) | (APnDP ? SWDRequestFrame::IS_ACCESS_PORT : 0); - req.SetRequestByte(request_byte); - req.SetRegister(reg); - req.mType = SWDFT_Request; - pResults->AddFrame(req); - - // turnaround - f = bits[8].MakeFrame(); - f.mType = SWDFT_Turnaround; - pResults->AddFrame(f); - - // ack - f.mStartingSampleInclusive = bits[9].GetStartSample(); - f.mEndingSampleInclusive = bits[11].GetEndSample(); - f.mType = SWDFT_ACK; - f.mData1 = ACK; - pResults->AddFrame(f); - - if (bits.size() < TRAN_READ_LENGTH) - return; - - // turnaround - std::vector::iterator bi(bits.begin() + 12); - if (!IsRead()) - { - f = bits[12].MakeFrame(); - f.mType = SWDFT_Turnaround; - pResults->AddFrame(f); - bi++; - } - - // data - f = bi->MakeFrame(); - f.mEndingSampleInclusive = bi[31].GetEndSample(); - f.mType = SWDFT_WData; - f.mData1 = data; - f.mData2 = reg; - pResults->AddFrame(f); - - // data parity - f = bi[32].MakeFrame(); - f.mType = SWDFT_DataParity; - f.mData1 = data_parity; - f.mData2 = data_parity_ok ? 1 : 0; - pResults->AddFrame(f); - - bi += 33; - - // do we have trailing bits? - if (bi < bits.end()) - { - f.mStartingSampleInclusive = bi->GetStartSample(); - f.mEndingSampleInclusive = bits.back().GetEndSample(); - f.mType = SWDFT_TrailingBits; - - f.mFlags = 0; - f.mData1 = 0; - f.mData2 = 0; - - pResults->AddFrame(f); - } + Frame f; + + assert( bits.size() >= TRAN_REQ_AND_ACK ); + + // request + SWDRequestFrame req; + req.mStartingSampleInclusive = bits[ 0 ].GetStartSample(); + req.mEndingSampleInclusive = bits[ 7 ].GetEndSample(); + req.mFlags = ( IsRead() ? SWDRequestFrame::IS_READ : 0 ) | ( APnDP ? SWDRequestFrame::IS_ACCESS_PORT : 0 ); + req.SetRequestByte( request_byte ); + req.SetRegister( reg ); + req.mType = SWDFT_Request; + pResults->AddFrame( req ); + + // turnaround + f = bits[ 8 ].MakeFrame(); + f.mType = SWDFT_Turnaround; + pResults->AddFrame( f ); + + // ack + f.mStartingSampleInclusive = bits[ 9 ].GetStartSample(); + f.mEndingSampleInclusive = bits[ 11 ].GetEndSample(); + f.mType = SWDFT_ACK; + f.mData1 = ACK; + pResults->AddFrame( f ); + + if( bits.size() < TRAN_READ_LENGTH ) + return; + + // turnaround + std::vector::iterator bi( bits.begin() + 12 ); + if( !IsRead() ) + { + f = bits[ 12 ].MakeFrame(); + f.mType = SWDFT_Turnaround; + pResults->AddFrame( f ); + bi++; + } + + // data + f = bi->MakeFrame(); + f.mEndingSampleInclusive = bi[ 31 ].GetEndSample(); + f.mType = SWDFT_WData; + f.mData1 = data; + f.mData2 = reg; + pResults->AddFrame( f ); + + // data parity + f = bi[ 32 ].MakeFrame(); + f.mType = SWDFT_DataParity; + f.mData1 = data_parity; + f.mData2 = data_parity_ok ? 1 : 0; + pResults->AddFrame( f ); + + bi += 33; + + // do we have trailing bits? + if( bi < bits.end() ) + { + f.mStartingSampleInclusive = bi->GetStartSample(); + f.mEndingSampleInclusive = bits.back().GetEndSample(); + f.mType = SWDFT_TrailingBits; + + f.mFlags = 0; + f.mData1 = 0; + f.mData2 = 0; + + pResults->AddFrame( f ); + } } -void SWDOperation::AddMarkers(SWDAnalyzerResults* pResults) +void SWDOperation::AddMarkers( SWDAnalyzerResults* pResults ) { - for (std::vector::iterator bi(bits.begin()); bi != bits.end(); bi++) - { - int ndx = bi - bits.begin(); - - // turnaround - if (ndx == 8 || ndx == 12 && !IsRead()) - pResults->AddMarker((bi->falling + bi->rising) / 2, - AnalyzerResults::X, - pResults->GetSettings()->mSWCLK); - - // write - else if (ndx < 8 || ndx > 12 && !IsRead()) - pResults->AddMarker(bi->falling, - bi->state_falling == BIT_HIGH ? AnalyzerResults::One : AnalyzerResults::Zero, - pResults->GetSettings()->mSWCLK); - // read - else - pResults->AddMarker(bi->rising, - bi->state_rising == BIT_HIGH ? AnalyzerResults::One : AnalyzerResults::Zero, - pResults->GetSettings()->mSWCLK); - } + for( std::vector::iterator bi( bits.begin() ); bi != bits.end(); bi++ ) + { + int ndx = bi - bits.begin(); + + // turnaround + if( ndx == 8 || ndx == 12 && !IsRead() ) + pResults->AddMarker( ( bi->falling + bi->rising ) / 2, AnalyzerResults::X, pResults->GetSettings()->mSWCLK ); + + // write + else if( ndx < 8 || ndx > 12 && !IsRead() ) + pResults->AddMarker( bi->falling, bi->state_falling == BIT_HIGH ? AnalyzerResults::One : AnalyzerResults::Zero, + pResults->GetSettings()->mSWCLK ); + // read + else + pResults->AddMarker( bi->rising, bi->state_rising == BIT_HIGH ? AnalyzerResults::One : AnalyzerResults::Zero, + pResults->GetSettings()->mSWCLK ); + } } -void SWDOperation::SetRegister(U32 select_reg) +void SWDOperation::SetRegister( U32 select_reg ) { - if (APnDP) // AccessPort or DebugPort? - { - U8 apbanksel = U8(select_reg & 0xf0); - U8 apreg = apbanksel | addr; - - switch (apreg) - { - case 0x00: reg = SWDR_AP_CSW; break; - case 0x04: reg = SWDR_AP_TAR; break; - case 0x0C: reg = SWDR_AP_DRW; break; - case 0x10: reg = SWDR_AP_BD0; break; - case 0x14: reg = SWDR_AP_BD1; break; - case 0x18: reg = SWDR_AP_BD2; break; - case 0x1C: reg = SWDR_AP_BD3; break; - case 0xF4: reg = SWDR_AP_CFG; break; - case 0xF8: reg = SWDR_AP_BASE; break; - case 0xFC: reg = SWDR_AP_IDR; break; - default: reg = SWDR_AP_RAZ_WI; break; - } - } else { - switch (addr) - { - case 0x0: reg = RnW ? SWDR_DP_IDCODE : SWDR_DP_ABORT; break; - case 0x4: reg = (select_reg & 1) != 0 ? SWDR_DP_WCR : SWDR_DP_CTRL_STAT; break; - case 0x8: reg = RnW ? SWDR_DP_RESEND : SWDR_DP_SELECT; break; - case 0xC: reg = RnW ? SWDR_DP_RDBUFF : SWDR_DP_ROUTESEL; break; - } - } - + if( APnDP ) // AccessPort or DebugPort? + { + U8 apbanksel = U8( select_reg & 0xf0 ); + U8 apreg = apbanksel | addr; + + switch( apreg ) + { + case 0x00: + reg = SWDR_AP_CSW; + break; + case 0x04: + reg = SWDR_AP_TAR; + break; + case 0x0C: + reg = SWDR_AP_DRW; + break; + case 0x10: + reg = SWDR_AP_BD0; + break; + case 0x14: + reg = SWDR_AP_BD1; + break; + case 0x18: + reg = SWDR_AP_BD2; + break; + case 0x1C: + reg = SWDR_AP_BD3; + break; + case 0xF4: + reg = SWDR_AP_CFG; + break; + case 0xF8: + reg = SWDR_AP_BASE; + break; + case 0xFC: + reg = SWDR_AP_IDR; + break; + default: + reg = SWDR_AP_RAZ_WI; + break; + } + } + else + { + switch( addr ) + { + case 0x0: + reg = RnW ? SWDR_DP_IDCODE : SWDR_DP_ABORT; + break; + case 0x4: + reg = ( select_reg & 1 ) != 0 ? SWDR_DP_WCR : SWDR_DP_CTRL_STAT; + break; + case 0x8: + reg = RnW ? SWDR_DP_RESEND : SWDR_DP_SELECT; + break; + case 0xC: + reg = RnW ? SWDR_DP_RDBUFF : SWDR_DP_ROUTESEL; + break; + } + } } // ******************************************************************************** -void SWDLineReset::AddFrames(AnalyzerResults* pResults) +void SWDLineReset::AddFrames( AnalyzerResults* pResults ) { - Frame f; - - // line reset - f.mStartingSampleInclusive = bits.front().GetStartSample(); - f.mEndingSampleInclusive = bits.back().GetEndSample(); - f.mType = SWDFT_LineReset; - f.mData1 = bits.size(); - pResults->AddFrame(f); + Frame f; + + // line reset + f.mStartingSampleInclusive = bits.front().GetStartSample(); + f.mEndingSampleInclusive = bits.back().GetEndSample(); + f.mType = SWDFT_LineReset; + f.mData1 = bits.size(); + pResults->AddFrame( f ); } // ******************************************************************************** -SWDParser::SWDParser() - : mSWDIO(0), mSWCLK(0) -{} +SWDParser::SWDParser() : mSWDIO( 0 ), mSWCLK( 0 ) +{ +} -void SWDParser::Setup(AnalyzerChannelData* pSWDIO, AnalyzerChannelData* pSWCLK, SWDAnalyzer* pAnalyzer) +void SWDParser::Setup( AnalyzerChannelData* pSWDIO, AnalyzerChannelData* pSWCLK, SWDAnalyzer* pAnalyzer ) { - mSWDIO = pSWDIO; - mSWCLK = pSWCLK; + mSWDIO = pSWDIO; + mSWCLK = pSWCLK; - mAnalyzer = pAnalyzer; + mAnalyzer = pAnalyzer; - // skip the SWCLK high - if (mSWCLK->GetBitState() == BIT_HIGH) - { - mSWCLK->AdvanceToNextEdge(); - mSWDIO->AdvanceToAbsPosition(mSWCLK->GetSampleNumber()); - } + // skip the SWCLK high + if( mSWCLK->GetBitState() == BIT_HIGH ) + { + mSWCLK->AdvanceToNextEdge(); + mSWDIO->AdvanceToAbsPosition( mSWCLK->GetSampleNumber() ); + } } SWDBit SWDParser::ParseBit() { - SWDBit rbit; + SWDBit rbit; - assert(mSWCLK->GetBitState() == BIT_LOW); + assert( mSWCLK->GetBitState() == BIT_LOW ); - rbit.low_start = mSWCLK->GetSampleNumber(); + rbit.low_start = mSWCLK->GetSampleNumber(); - // sample the rising edge 1 sample before the the actual - mSWCLK->AdvanceToAbsPosition(mSWCLK->GetSampleOfNextEdge() - 1); - mSWDIO->AdvanceToAbsPosition(mSWCLK->GetSampleNumber()); - rbit.rising = mSWCLK->GetSampleNumber(); - rbit.state_rising = mSWDIO->GetBitState(); - mSWCLK->AdvanceToNextEdge(); - mSWDIO->AdvanceToAbsPosition(mSWCLK->GetSampleNumber()); + // sample the rising edge 1 sample before the the actual + mSWCLK->AdvanceToAbsPosition( mSWCLK->GetSampleOfNextEdge() - 1 ); + mSWDIO->AdvanceToAbsPosition( mSWCLK->GetSampleNumber() ); + rbit.rising = mSWCLK->GetSampleNumber(); + rbit.state_rising = mSWDIO->GetBitState(); + mSWCLK->AdvanceToNextEdge(); + mSWDIO->AdvanceToAbsPosition( mSWCLK->GetSampleNumber() ); - /* - // go to the rising egde - mSWCLK->AdvanceToNextEdge(); - mSWDIO->AdvanceToAbsPosition(mSWCLK->GetSampleNumber()); + /* + // go to the rising egde + mSWCLK->AdvanceToNextEdge(); + mSWDIO->AdvanceToAbsPosition(mSWCLK->GetSampleNumber()); - rbit.rising = mSWCLK->GetSampleNumber(); - rbit.state_rising = mSWDIO->GetBitState(); - */ + rbit.rising = mSWCLK->GetSampleNumber(); + rbit.state_rising = mSWDIO->GetBitState(); + */ - // go to the falling edge - mSWCLK->AdvanceToNextEdge(); - mSWDIO->AdvanceToAbsPosition(mSWCLK->GetSampleNumber()); + // go to the falling edge + mSWCLK->AdvanceToNextEdge(); + mSWDIO->AdvanceToAbsPosition( mSWCLK->GetSampleNumber() ); - rbit.falling = mSWCLK->GetSampleNumber(); - rbit.state_falling = mSWDIO->GetBitState(); + rbit.falling = mSWCLK->GetSampleNumber(); + rbit.state_falling = mSWDIO->GetBitState(); - rbit.low_end = mSWCLK->GetSampleOfNextEdge(); + rbit.low_end = mSWCLK->GetSampleOfNextEdge(); - return rbit; + return rbit; } -void SWDParser::BufferBits(size_t num_bits) +void SWDParser::BufferBits( size_t num_bits ) { - while (mBitsBuffer.size() < num_bits) - mBitsBuffer.push_back(ParseBit()); + while( mBitsBuffer.size() < num_bits ) + mBitsBuffer.push_back( ParseBit() ); } SWDBit SWDParser::PopFrontBit() { - assert(!mBitsBuffer.empty()); + assert( !mBitsBuffer.empty() ); - SWDBit ret_val(mBitsBuffer.front()); + SWDBit ret_val( mBitsBuffer.front() ); - // shift the elements by 1 - std::copy(mBitsBuffer.begin() + 1, mBitsBuffer.end(), mBitsBuffer.begin()); - mBitsBuffer.pop_back(); + // shift the elements by 1 + std::copy( mBitsBuffer.begin() + 1, mBitsBuffer.end(), mBitsBuffer.begin() ); + mBitsBuffer.pop_back(); - return ret_val; + return ret_val; } -bool SWDParser::IsOperation(SWDOperation& tran) +bool SWDParser::IsOperation( SWDOperation& tran ) { - tran.Clear(); - - // read enough bits so that we don't have to worry of subscripts out of range - BufferBits(TRAN_REQ_AND_ACK); - - // turn the bits into a byte - tran.request_byte = 0; - for (size_t cnt = 0; cnt < 8; ++cnt) - { - tran.request_byte >>= 1; - tran.request_byte |= (mBitsBuffer[cnt].IsHigh() ? 0x80 : 0); - } - - // are the request's constant bits (start, stop & park) wrong? - if ((tran.request_byte & 0xC1) != 0x81) - return false; - - // get the indivitual bits - tran.APnDP = (tran.request_byte & 0x02) != 0; //(mBitsBuffer[1].state_falling == BIT_HIGH); - tran.RnW = (tran.request_byte & 0x04) != 0; //(mBitsBuffer[2].state_falling == BIT_HIGH); - tran.addr = (tran.request_byte & 0x18) >> 1; //(mBitsBuffer[3].state_falling == BIT_HIGH ? (1<<2) : 0) - //| (mBitsBuffer[4].state_falling == BIT_HIGH ? (1<<3) : 0); - tran.parity_read = ((tran.request_byte & 0x20) != 0 ? 1 : 0); //(mBitsBuffer[5].state_falling == BIT_HIGH ? 1 : 0); - - // check parity - int check = (mBitsBuffer[1].state_rising == BIT_HIGH ? 1 : 0) - + (mBitsBuffer[2].state_rising == BIT_HIGH ? 1 : 0) - + (mBitsBuffer[3].state_rising == BIT_HIGH ? 1 : 0) - + (mBitsBuffer[4].state_rising == BIT_HIGH ? 1 : 0); - - if (tran.parity_read != (check & 1)) - return false; - - // Set the actual register in this operation based on the data from the request - // and the previous select register state. - tran.SetRegister(mSelectRegister); - - // get the ACK value - tran.ACK = (mBitsBuffer[9].state_rising == BIT_HIGH ? 1 : 0) - + (mBitsBuffer[10].state_rising == BIT_HIGH ? 2 : 0) - + (mBitsBuffer[11].state_rising == BIT_HIGH ? 4 : 0); - - // we're only handling OK, WAIT and FAULT responses - if (tran.ACK == ACK_WAIT || tran.ACK == ACK_FAULT) - { - // copy this operation's bits - tran.bits.clear(); - std::copy(mBitsBuffer.begin(), mBitsBuffer.begin() + TRAN_REQ_AND_ACK, std::back_inserter(tran.bits)); - - // consume this operation's bits - mBitsBuffer.erase(mBitsBuffer.begin(), mBitsBuffer.begin() + TRAN_REQ_AND_ACK); - - return true; - } - - if (tran.ACK != ACK_OK) - return false; - - BufferBits(TRAN_READ_LENGTH); - - // turnaround if write operation - bool read_rising = true; - std::vector::iterator bi(mBitsBuffer.begin() + 12); - if (!tran.IsRead()) - { - BufferBits(TRAN_WRITE_LENGTH); - ++bi; - // !!! read_rising = false; - } - - // read the data - tran.data = 0; - check = 0; - size_t ndx; - for (ndx = 0; ndx < 32; ndx++) - { - tran.data >>= 1; - - if (bi[ndx].IsHigh(read_rising)) - { - tran.data |= 0x80000000; - ++check; - } - } - - // data parity - tran.data_parity = bi[ndx].IsHigh(read_rising) ? 1 : 0; - - tran.data_parity_ok = (tran.data_parity == (check & 1)); - - if (!tran.data_parity_ok) - return false; - - // if this is a SELECT register write, remember the value - if (tran.reg == SWDR_DP_SELECT && !tran.RnW) - mSelectRegister = tran.data; - - // buffered trailing zeros - ++ndx; - bool all_zeros = true; - while (bi + ndx < mBitsBuffer.end()) - { - if (bi[ndx].IsHigh(read_rising)) - { - all_zeros = false; - break; - } - - ++ndx; - } - - // if we haven't seen a high bit carry on until we do - if (all_zeros) - { - // read the remaining zero bits - SWDBit bit; - while (1) - { - bit = ParseBit(); - if (bit.IsHigh(read_rising)) - break; - - mBitsBuffer.push_back(bit); - } - - // give the bits to the tran object - tran.bits = mBitsBuffer; - mBitsBuffer.clear(); - - // keep the high bit because that one is probably next operation's start bit - mBitsBuffer.push_back(bit); - - } else { - - // copy this operation's bits - tran.bits.clear(); - std::copy(mBitsBuffer.begin(), mBitsBuffer.begin() + ndx, std::back_inserter(tran.bits)); - - // remove this operation's bits from the buffer - mBitsBuffer.erase(mBitsBuffer.begin(), mBitsBuffer.begin() + ndx); - } - - return true; + tran.Clear(); + + // read enough bits so that we don't have to worry of subscripts out of range + BufferBits( TRAN_REQ_AND_ACK ); + + // turn the bits into a byte + tran.request_byte = 0; + for( size_t cnt = 0; cnt < 8; ++cnt ) + { + tran.request_byte >>= 1; + tran.request_byte |= ( mBitsBuffer[ cnt ].IsHigh() ? 0x80 : 0 ); + } + + // are the request's constant bits (start, stop & park) wrong? + if( ( tran.request_byte & 0xC1 ) != 0x81 ) + return false; + + // get the indivitual bits + tran.APnDP = ( tran.request_byte & 0x02 ) != 0; //(mBitsBuffer[1].state_falling == BIT_HIGH); + tran.RnW = ( tran.request_byte & 0x04 ) != 0; //(mBitsBuffer[2].state_falling == BIT_HIGH); + tran.addr = ( tran.request_byte & 0x18 ) >> 1; //(mBitsBuffer[3].state_falling == BIT_HIGH ? (1<<2) : 0) + //| (mBitsBuffer[4].state_falling == BIT_HIGH ? (1<<3) : 0); + tran.parity_read = ( ( tran.request_byte & 0x20 ) != 0 ? 1 : 0 ); //(mBitsBuffer[5].state_falling == BIT_HIGH ? 1 : 0); + + // check parity + int check = ( mBitsBuffer[ 1 ].state_rising == BIT_HIGH ? 1 : 0 ) + ( mBitsBuffer[ 2 ].state_rising == BIT_HIGH ? 1 : 0 ) + + ( mBitsBuffer[ 3 ].state_rising == BIT_HIGH ? 1 : 0 ) + ( mBitsBuffer[ 4 ].state_rising == BIT_HIGH ? 1 : 0 ); + + if( tran.parity_read != ( check & 1 ) ) + return false; + + // Set the actual register in this operation based on the data from the request + // and the previous select register state. + tran.SetRegister( mSelectRegister ); + + // get the ACK value + tran.ACK = ( mBitsBuffer[ 9 ].state_rising == BIT_HIGH ? 1 : 0 ) + ( mBitsBuffer[ 10 ].state_rising == BIT_HIGH ? 2 : 0 ) + + ( mBitsBuffer[ 11 ].state_rising == BIT_HIGH ? 4 : 0 ); + + // we're only handling OK, WAIT and FAULT responses + if( tran.ACK == ACK_WAIT || tran.ACK == ACK_FAULT ) + { + // copy this operation's bits + tran.bits.clear(); + std::copy( mBitsBuffer.begin(), mBitsBuffer.begin() + TRAN_REQ_AND_ACK, std::back_inserter( tran.bits ) ); + + // consume this operation's bits + mBitsBuffer.erase( mBitsBuffer.begin(), mBitsBuffer.begin() + TRAN_REQ_AND_ACK ); + + return true; + } + + if( tran.ACK != ACK_OK ) + return false; + + BufferBits( TRAN_READ_LENGTH ); + + // turnaround if write operation + bool read_rising = true; + std::vector::iterator bi( mBitsBuffer.begin() + 12 ); + if( !tran.IsRead() ) + { + BufferBits( TRAN_WRITE_LENGTH ); + ++bi; + // !!! read_rising = false; + } + + // read the data + tran.data = 0; + check = 0; + size_t ndx; + for( ndx = 0; ndx < 32; ndx++ ) + { + tran.data >>= 1; + + if( bi[ ndx ].IsHigh( read_rising ) ) + { + tran.data |= 0x80000000; + ++check; + } + } + + // data parity + tran.data_parity = bi[ ndx ].IsHigh( read_rising ) ? 1 : 0; + + tran.data_parity_ok = ( tran.data_parity == ( check & 1 ) ); + + if( !tran.data_parity_ok ) + return false; + + // if this is a SELECT register write, remember the value + if( tran.reg == SWDR_DP_SELECT && !tran.RnW ) + mSelectRegister = tran.data; + + // buffered trailing zeros + ++ndx; + bool all_zeros = true; + while( bi + ndx < mBitsBuffer.end() ) + { + if( bi[ ndx ].IsHigh( read_rising ) ) + { + all_zeros = false; + break; + } + + ++ndx; + } + + // if we haven't seen a high bit carry on until we do + if( all_zeros ) + { + // read the remaining zero bits + SWDBit bit; + while( 1 ) + { + bit = ParseBit(); + if( bit.IsHigh( read_rising ) ) + break; + + mBitsBuffer.push_back( bit ); + } + + // give the bits to the tran object + tran.bits = mBitsBuffer; + mBitsBuffer.clear(); + + // keep the high bit because that one is probably next operation's start bit + mBitsBuffer.push_back( bit ); + } + else + { + // copy this operation's bits + tran.bits.clear(); + std::copy( mBitsBuffer.begin(), mBitsBuffer.begin() + ndx, std::back_inserter( tran.bits ) ); + + // remove this operation's bits from the buffer + mBitsBuffer.erase( mBitsBuffer.begin(), mBitsBuffer.begin() + ndx ); + } + + return true; } -bool SWDParser::IsLineReset(SWDLineReset& reset) +bool SWDParser::IsLineReset( SWDLineReset& reset ) { - reset.Clear(); + reset.Clear(); - // we need at least 50 bits with a value of 1 - for (size_t cnt = 0; cnt < 50; cnt++) - { - if (cnt >= mBitsBuffer.size()) - mBitsBuffer.push_back(ParseBit()); + // we need at least 50 bits with a value of 1 + for( size_t cnt = 0; cnt < 50; cnt++ ) + { + if( cnt >= mBitsBuffer.size() ) + mBitsBuffer.push_back( ParseBit() ); - // we can't have a low bit - if (!mBitsBuffer[cnt].IsHigh()) - return false; - } + // we can't have a low bit + if( !mBitsBuffer[ cnt ].IsHigh() ) + return false; + } - SWDBit bit; - while (true) - { - bit = ParseBit(); - if (!bit.IsHigh()) - break; + SWDBit bit; + while( true ) + { + bit = ParseBit(); + if( !bit.IsHigh() ) + break; - mBitsBuffer.push_back(bit); - } + mBitsBuffer.push_back( bit ); + } - // give the bits to the reset object - reset.bits = mBitsBuffer; - mBitsBuffer.clear(); + // give the bits to the reset object + reset.bits = mBitsBuffer; + mBitsBuffer.clear(); - // keep the high bit because that one is probably next operation's start bit - mBitsBuffer.push_back(bit); + // keep the high bit because that one is probably next operation's start bit + mBitsBuffer.push_back( bit ); - return true; + return true; } diff --git a/src/SWDTypes.h b/src/SWDTypes.h index 75302da..69ed08c 100644 --- a/src/SWDTypes.h +++ b/src/SWDTypes.h @@ -8,152 +8,171 @@ // the possible frame types enum SWDFrameTypes { - SWDFT_Error, - SWDFT_Bit, + SWDFT_Error, + SWDFT_Bit, - SWDFT_LineReset, + SWDFT_LineReset, - SWDFT_Request, - SWDFT_Turnaround, - SWDFT_ACK, - SWDFT_WData, - SWDFT_DataParity, - SWDFT_TrailingBits, + SWDFT_Request, + SWDFT_Turnaround, + SWDFT_ACK, + SWDFT_WData, + SWDFT_DataParity, + SWDFT_TrailingBits, }; // the DebugPort and AccessPort registers as defined by SWD enum SWDRegisters { - SWDR_undefined, - - // DP - SWDR_DP_IDCODE, - SWDR_DP_ABORT, - SWDR_DP_CTRL_STAT, - SWDR_DP_WCR, - SWDR_DP_RESEND, - SWDR_DP_SELECT, - SWDR_DP_RDBUFF, - SWDR_DP_ROUTESEL, - - // AP - SWDR_AP_CSW, - SWDR_AP_TAR, - SWDR_AP_DRW, - SWDR_AP_BD0, - SWDR_AP_BD1, - SWDR_AP_BD2, - SWDR_AP_BD3, - SWDR_AP_CFG, - SWDR_AP_BASE, - SWDR_AP_RAZ_WI, - SWDR_AP_IDR, + SWDR_undefined, + + // DP + SWDR_DP_IDCODE, + SWDR_DP_ABORT, + SWDR_DP_CTRL_STAT, + SWDR_DP_WCR, + SWDR_DP_RESEND, + SWDR_DP_SELECT, + SWDR_DP_RDBUFF, + SWDR_DP_ROUTESEL, + + // AP + SWDR_AP_CSW, + SWDR_AP_TAR, + SWDR_AP_DRW, + SWDR_AP_BD0, + SWDR_AP_BD1, + SWDR_AP_BD2, + SWDR_AP_BD3, + SWDR_AP_CFG, + SWDR_AP_BASE, + SWDR_AP_RAZ_WI, + SWDR_AP_IDR, }; // some ACK values enum SWDACK { - ACK_OK = 1, - ACK_WAIT = 2, - ACK_FAULT = 4, + ACK_OK = 1, + ACK_WAIT = 2, + ACK_FAULT = 4, }; // this is the basic token of the analyzer // objects of this type are buffered in SWDOperation struct SWDBit { - BitState state_rising; - BitState state_falling; + BitState state_rising; + BitState state_falling; - S64 low_start; - S64 rising; - S64 falling; - S64 low_end; + S64 low_start; + S64 rising; + S64 falling; + S64 low_end; - bool IsHigh(bool is_rising = true) const - { - return (is_rising ? state_rising : state_falling) == BIT_HIGH; - } + bool IsHigh( bool is_rising = true ) const + { + return ( is_rising ? state_rising : state_falling ) == BIT_HIGH; + } - S64 GetMinStartEnd() const; - S64 GetStartSample() const; - S64 GetEndSample() const; + S64 GetMinStartEnd() const; + S64 GetStartSample() const; + S64 GetEndSample() const; - Frame MakeFrame(); + Frame MakeFrame(); }; // this object contains data about one SWD operation as described in section 5.3 // of the ARM Debug Interface v5 Architecture Specification struct SWDOperation { - // request - bool APnDP; - bool RnW; - U8 addr; // A[2..3] + // request + bool APnDP; + bool RnW; + U8 addr; // A[2..3] - U8 parity_read; + U8 parity_read; - U8 request_byte; // the entire request byte + U8 request_byte; // the entire request byte - // acknowledge - U8 ACK; + // acknowledge + U8 ACK; - // data - U32 data; - U8 data_parity; - bool data_parity_ok; + // data + U32 data; + U8 data_parity; + bool data_parity_ok; - std::vector bits; + std::vector bits; - // DebugPort or AccessPort register that this operation is reading/writing - SWDRegisters reg; + // DebugPort or AccessPort register that this operation is reading/writing + SWDRegisters reg; - void Clear(); - void AddFrames(SWDAnalyzerResults* pResults); - void AddMarkers(SWDAnalyzerResults* pResults); - void SetRegister(U32 select_reg); + void Clear(); + void AddFrames( SWDAnalyzerResults* pResults ); + void AddMarkers( SWDAnalyzerResults* pResults ); + void SetRegister( U32 select_reg ); - bool IsRead() - { - return RnW; - } + bool IsRead() + { + return RnW; + } }; struct SWDLineReset { - std::vector bits; + std::vector bits; - void Clear() - { - bits.clear(); - } + void Clear() + { + bits.clear(); + } - void AddFrames(AnalyzerResults* pResults); + void AddFrames( AnalyzerResults* pResults ); }; -struct SWDRequestFrame: public Frame +struct SWDRequestFrame : public Frame { - // mData1 contains addr, mData2 contains the register enum - - // mFlag - enum { - IS_READ = (1 << 0), - IS_ACCESS_PORT = (1 << 1), - }; - - void SetRequestByte(U8 request_byte) - { - mData1 = request_byte; - } - - U8 GetAddr() const { return (U8) ((mData1 >> 1) & 0xc); } - bool IsRead() const { return (mFlags & IS_READ) != 0; } - bool IsAccessPort() const { return (mFlags & IS_ACCESS_PORT) != 0; } - bool IsDebugPort() const { return !IsAccessPort(); } - - void SetRegister(SWDRegisters reg) { mData2 = reg; } - SWDRegisters GetRegister() const { return SWDRegisters(mData2); } - std::string GetRegisterName() const; + // mData1 contains addr, mData2 contains the register enum + + // mFlag + enum + { + IS_READ = ( 1 << 0 ), + IS_ACCESS_PORT = ( 1 << 1 ), + }; + + void SetRequestByte( U8 request_byte ) + { + mData1 = request_byte; + } + + U8 GetAddr() const + { + return ( U8 )( ( mData1 >> 1 ) & 0xc ); + } + bool IsRead() const + { + return ( mFlags & IS_READ ) != 0; + } + bool IsAccessPort() const + { + return ( mFlags & IS_ACCESS_PORT ) != 0; + } + bool IsDebugPort() const + { + return !IsAccessPort(); + } + + void SetRegister( SWDRegisters reg ) + { + mData2 = reg; + } + SWDRegisters GetRegister() const + { + return SWDRegisters( mData2 ); + } + std::string GetRegisterName() const; }; class SWDAnalyzer; @@ -163,33 +182,33 @@ class SWDAnalyzer; // the stream are a valid operation or line reset. class SWDParser { -private: - AnalyzerChannelData* mSWDIO; - AnalyzerChannelData* mSWCLK; + private: + AnalyzerChannelData* mSWDIO; + AnalyzerChannelData* mSWCLK; - SWDAnalyzer* mAnalyzer; + SWDAnalyzer* mAnalyzer; - std::vector mBitsBuffer; - U32 mSelectRegister; + std::vector mBitsBuffer; + U32 mSelectRegister; - SWDBit ParseBit(); - void BufferBits(size_t num_bits); + SWDBit ParseBit(); + void BufferBits( size_t num_bits ); -public: - SWDParser(); + public: + SWDParser(); - void Setup(AnalyzerChannelData* pSWDIO, AnalyzerChannelData* pSWCLK, SWDAnalyzer* pAnalyzer); + void Setup( AnalyzerChannelData* pSWDIO, AnalyzerChannelData* pSWCLK, SWDAnalyzer* pAnalyzer ); - void Clear() - { - mBitsBuffer.clear(); - mSelectRegister = 0; - } + void Clear() + { + mBitsBuffer.clear(); + mSelectRegister = 0; + } - bool IsOperation(SWDOperation& tran); - bool IsLineReset(SWDLineReset& reset); + bool IsOperation( SWDOperation& tran ); + bool IsLineReset( SWDLineReset& reset ); - SWDBit PopFrontBit(); + SWDBit PopFrontBit(); }; -#endif // SWD_TYPES_H +#endif // SWD_TYPES_H diff --git a/src/SWDUtils.cpp b/src/SWDUtils.cpp index af5b34b..828f298 100644 --- a/src/SWDUtils.cpp +++ b/src/SWDUtils.cpp @@ -3,168 +3,218 @@ #include "SWDUtils.h" #include "SWDTypes.h" -std::string GetRegisterName(SWDRegisters reg) +std::string GetRegisterName( SWDRegisters reg ) { - switch (reg) - { - case SWDR_DP_IDCODE: return "IDCODE"; - case SWDR_DP_ABORT: return "ABORT"; - case SWDR_DP_CTRL_STAT: return "CTRL/STAT"; - case SWDR_DP_WCR: return "WCR"; - case SWDR_DP_RESEND: return "RESEND"; - case SWDR_DP_SELECT: return "SELECT"; - case SWDR_DP_RDBUFF: return "RDBUFF"; - case SWDR_DP_ROUTESEL: return "ROUTESEL"; + switch( reg ) + { + case SWDR_DP_IDCODE: + return "IDCODE"; + case SWDR_DP_ABORT: + return "ABORT"; + case SWDR_DP_CTRL_STAT: + return "CTRL/STAT"; + case SWDR_DP_WCR: + return "WCR"; + case SWDR_DP_RESEND: + return "RESEND"; + case SWDR_DP_SELECT: + return "SELECT"; + case SWDR_DP_RDBUFF: + return "RDBUFF"; + case SWDR_DP_ROUTESEL: + return "ROUTESEL"; - case SWDR_AP_CSW: return "CSW"; - case SWDR_AP_TAR: return "TAR"; - case SWDR_AP_DRW: return "DRW"; - case SWDR_AP_BD0: return "BD0"; - case SWDR_AP_BD1: return "BD1"; - case SWDR_AP_BD2: return "BD2"; - case SWDR_AP_BD3: return "BD3"; - case SWDR_AP_CFG: return "CFG"; - case SWDR_AP_BASE: return "BASE"; - case SWDR_AP_RAZ_WI: return "RAZ_WI"; - case SWDR_AP_IDR: return "IDR"; - } + case SWDR_AP_CSW: + return "CSW"; + case SWDR_AP_TAR: + return "TAR"; + case SWDR_AP_DRW: + return "DRW"; + case SWDR_AP_BD0: + return "BD0"; + case SWDR_AP_BD1: + return "BD1"; + case SWDR_AP_BD2: + return "BD2"; + case SWDR_AP_BD3: + return "BD3"; + case SWDR_AP_CFG: + return "CFG"; + case SWDR_AP_BASE: + return "BASE"; + case SWDR_AP_RAZ_WI: + return "RAZ_WI"; + case SWDR_AP_IDR: + return "IDR"; + } - return "??"; + return "??"; } -std::string GetRegisterValueDesc(SWDRegisters reg, U32 val, DisplayBase display_base) +std::string GetRegisterValueDesc( SWDRegisters reg, U32 val, DisplayBase display_base ) { - std::string ret_val; - - switch (reg) - { - case SWDR_DP_IDCODE: - ret_val = "DESIGNER=" + int2str_sal(val & 0xfff, display_base, 12); - ret_val += ", PARTNO=" + int2str_sal((val >> 12) & 0xffff, display_base, 16); - ret_val += ", Version=" + int2str_sal((val >> 28) & 0xf, display_base, 4); - break; - case SWDR_DP_ABORT: - ret_val = std::string("ORUNERRCLR=") + ((val & 16) ? "1" : "0"); - ret_val += std::string(", WDERRCLR=") + ((val & 8) ? "1" : "0"); - ret_val += std::string(", STKERRCLR=") + ((val & 4) ? "1" : "0"); - ret_val += std::string(", STKCMPCLR=") + ((val & 2) ? "1" : "0"); - ret_val += std::string(", DAPABORT=") + ((val & 1) ? "1" : "0"); - break; + std::string ret_val; - case SWDR_DP_CTRL_STAT: - ret_val = std::string("CSYSPWRUPACK=") + ((val & (1<<31)) ? "1" : "0"); - ret_val += std::string(", CSYSPWRUPREQ=") + ((val & (1<<30)) ? "1" : "0"); - ret_val += std::string(", CDBGPWRUPACK=") + ((val & (1<<29)) ? "1" : "0"); - ret_val += std::string(", CDBGPWRUPREQ=") + ((val & (1<<28)) ? "1" : "0"); - ret_val += std::string(", CDBGRSTACK=") + ((val & (1<<27)) ? "1" : "0"); - ret_val += std::string(", CDBGRSTREQ=") + ((val & (1<<26)) ? "1" : "0"); - ret_val += ", TRNCNT=" + int2str_sal((val >> 12) & 0xfff, display_base, 12); - ret_val += ", MASKLANE=" + int2str_sal((val >> 8) & 0xf, display_base, 4); - ret_val += std::string(", WDATAERR=") + ((val & (1<<7)) ? "1" : "0"); - ret_val += std::string(", READOK=") + ((val & (1<<6)) ? "1" : "0"); - ret_val += std::string(", STICKYERR=") + ((val & (1<<5)) ? "1" : "0"); - ret_val += std::string(", STICKYCMP=") + ((val & (1<<4)) ? "1" : "0"); - ret_val += ", TRNMODE="; - switch ((val >> 2) & 3) - { - case 0: ret_val += "Normal"; break; - case 1: ret_val += "Pushed verify"; break; - case 2: ret_val += "Pushed compare"; break; - case 3: ret_val += "Reserved"; break; - } - ret_val += std::string(", STICKYORUN=") + ((val & (1<<1)) ? "1" : "0"); - ret_val += std::string(", ORUNDETECT=") + ((val & (1<<0)) ? "1" : "0"); - break; - case SWDR_DP_WCR: - ret_val = "TURNAROUND=" + int2str_sal((val >> 8) & 3, display_base, 2) + " data period(s)"; - ret_val += ", WIREMODE=" + int2str_sal((val >> 4) & 0xf, display_base, 4); - switch ((val >> 6) & 3) - { - case 0: ret_val += "Asynchronous"; break; - case 1: ret_val += "Synchronous"; break; - default: ret_val += "Reserved"; break; - } - break; - //case SWDR_DP_RESEND: break; // just raw data - case SWDR_DP_SELECT: - ret_val = "APSEL=" + int2str_sal((val >> 24) & 0xff, display_base); - ret_val += ", APBANKSEL=" + int2str_sal((val >> 4) & 0xf, display_base, 4); - ret_val += ", PRESCALER=" + int2str_sal(val & 0x3, display_base, 2); - break; - //case SWDR_DP_RDBUFF: break; // just raw data - //case SWDR_DP_ROUTESEL: break; // just raw data + switch( reg ) + { + case SWDR_DP_IDCODE: + ret_val = "DESIGNER=" + int2str_sal( val & 0xfff, display_base, 12 ); + ret_val += ", PARTNO=" + int2str_sal( ( val >> 12 ) & 0xffff, display_base, 16 ); + ret_val += ", Version=" + int2str_sal( ( val >> 28 ) & 0xf, display_base, 4 ); + break; + case SWDR_DP_ABORT: + ret_val = std::string( "ORUNERRCLR=" ) + ( ( val & 16 ) ? "1" : "0" ); + ret_val += std::string( ", WDERRCLR=" ) + ( ( val & 8 ) ? "1" : "0" ); + ret_val += std::string( ", STKERRCLR=" ) + ( ( val & 4 ) ? "1" : "0" ); + ret_val += std::string( ", STKCMPCLR=" ) + ( ( val & 2 ) ? "1" : "0" ); + ret_val += std::string( ", DAPABORT=" ) + ( ( val & 1 ) ? "1" : "0" ); + break; - // AP - case SWDR_AP_IDR: - ret_val = "Revision=" + int2str_sal(val >> 28, display_base, 4); - ret_val += ", JEP-106 continuation=" + int2str_sal((val >> 24) & 0xf, display_base, 4); - ret_val += ", JEP-106 identity=" + int2str_sal((val >> 17) & 0x7f, display_base, 7); - ret_val += std::string(", Class=") + ((val & (1<<16)) ? "This AP is a Memory Acces Port" : "This AP is not a Memory Acces Port"); - ret_val += ", AP Identfication=" + int2str_sal(val & 0xff, display_base); - break; - case SWDR_AP_CSW: - ret_val = std::string("DbgSwEnable=") + ((val & (1<<31)) ? "1" : "0"); - ret_val += ", Prot=" + int2str_sal((val >> 24) & 0x7f, display_base, 7); - ret_val += std::string(", SPIDEN=") + ((val & (1<<23)) ? "1" : "0"); - ret_val += ", Mode=" + int2str_sal((val >> 8) & 0xf, display_base, 4); - ret_val += std::string(", TrInProg=") + ((val & (1<<7)) ? "1" : "0"); - ret_val += std::string(", DeviceEn=") + ((val & (1<<6)) ? "1" : "0"); - ret_val += ", AddrInc="; - switch ((val >> 4) & 0x3) - { - case 0: ret_val += "Auto-increment off"; break; - case 1: ret_val += "Increment single"; break; - case 2: ret_val += "Increment packed"; break; - case 3: ret_val += "Reserved"; break; - } - ret_val += ", Size="; - switch (val & 0x7) - { - case 0: ret_val += "Byte (8 bits)"; break; - case 1: ret_val += "Halfword (16 bits)"; break; - case 2: ret_val += "Word (32 bits)"; break; - default: ret_val += "Reserved"; break; - } + case SWDR_DP_CTRL_STAT: + ret_val = std::string( "CSYSPWRUPACK=" ) + ( ( val & ( 1 << 31 ) ) ? "1" : "0" ); + ret_val += std::string( ", CSYSPWRUPREQ=" ) + ( ( val & ( 1 << 30 ) ) ? "1" : "0" ); + ret_val += std::string( ", CDBGPWRUPACK=" ) + ( ( val & ( 1 << 29 ) ) ? "1" : "0" ); + ret_val += std::string( ", CDBGPWRUPREQ=" ) + ( ( val & ( 1 << 28 ) ) ? "1" : "0" ); + ret_val += std::string( ", CDBGRSTACK=" ) + ( ( val & ( 1 << 27 ) ) ? "1" : "0" ); + ret_val += std::string( ", CDBGRSTREQ=" ) + ( ( val & ( 1 << 26 ) ) ? "1" : "0" ); + ret_val += ", TRNCNT=" + int2str_sal( ( val >> 12 ) & 0xfff, display_base, 12 ); + ret_val += ", MASKLANE=" + int2str_sal( ( val >> 8 ) & 0xf, display_base, 4 ); + ret_val += std::string( ", WDATAERR=" ) + ( ( val & ( 1 << 7 ) ) ? "1" : "0" ); + ret_val += std::string( ", READOK=" ) + ( ( val & ( 1 << 6 ) ) ? "1" : "0" ); + ret_val += std::string( ", STICKYERR=" ) + ( ( val & ( 1 << 5 ) ) ? "1" : "0" ); + ret_val += std::string( ", STICKYCMP=" ) + ( ( val & ( 1 << 4 ) ) ? "1" : "0" ); + ret_val += ", TRNMODE="; + switch( ( val >> 2 ) & 3 ) + { + case 0: + ret_val += "Normal"; + break; + case 1: + ret_val += "Pushed verify"; + break; + case 2: + ret_val += "Pushed compare"; + break; + case 3: + ret_val += "Reserved"; + break; + } + ret_val += std::string( ", STICKYORUN=" ) + ( ( val & ( 1 << 1 ) ) ? "1" : "0" ); + ret_val += std::string( ", ORUNDETECT=" ) + ( ( val & ( 1 << 0 ) ) ? "1" : "0" ); + break; + case SWDR_DP_WCR: + ret_val = "TURNAROUND=" + int2str_sal( ( val >> 8 ) & 3, display_base, 2 ) + " data period(s)"; + ret_val += ", WIREMODE=" + int2str_sal( ( val >> 4 ) & 0xf, display_base, 4 ); + switch( ( val >> 6 ) & 3 ) + { + case 0: + ret_val += "Asynchronous"; + break; + case 1: + ret_val += "Synchronous"; + break; + default: + ret_val += "Reserved"; + break; + } + break; + // case SWDR_DP_RESEND: break; // just raw data + case SWDR_DP_SELECT: + ret_val = "APSEL=" + int2str_sal( ( val >> 24 ) & 0xff, display_base ); + ret_val += ", APBANKSEL=" + int2str_sal( ( val >> 4 ) & 0xf, display_base, 4 ); + ret_val += ", PRESCALER=" + int2str_sal( val & 0x3, display_base, 2 ); + break; + // case SWDR_DP_RDBUFF: break; // just raw data + // case SWDR_DP_ROUTESEL: break; // just raw data - break; - // case SWDR_AP_TAR: break; // these are just raw data - // case SWDR_AP_DRW: break; - // case SWDR_AP_BD0: break; - // case SWDR_AP_BD1: break; - // case SWDR_AP_BD2: break; - // case SWDR_AP_BD3: break; - case SWDR_AP_CFG: - if (val & 1) - ret_val = "Big-endian"; - else - ret_val = "Little-endian"; + // AP + case SWDR_AP_IDR: + ret_val = "Revision=" + int2str_sal( val >> 28, display_base, 4 ); + ret_val += ", JEP-106 continuation=" + int2str_sal( ( val >> 24 ) & 0xf, display_base, 4 ); + ret_val += ", JEP-106 identity=" + int2str_sal( ( val >> 17 ) & 0x7f, display_base, 7 ); + ret_val += + std::string( ", Class=" ) + ( ( val & ( 1 << 16 ) ) ? "This AP is a Memory Acces Port" : "This AP is not a Memory Acces Port" ); + ret_val += ", AP Identfication=" + int2str_sal( val & 0xff, display_base ); + break; + case SWDR_AP_CSW: + ret_val = std::string( "DbgSwEnable=" ) + ( ( val & ( 1 << 31 ) ) ? "1" : "0" ); + ret_val += ", Prot=" + int2str_sal( ( val >> 24 ) & 0x7f, display_base, 7 ); + ret_val += std::string( ", SPIDEN=" ) + ( ( val & ( 1 << 23 ) ) ? "1" : "0" ); + ret_val += ", Mode=" + int2str_sal( ( val >> 8 ) & 0xf, display_base, 4 ); + ret_val += std::string( ", TrInProg=" ) + ( ( val & ( 1 << 7 ) ) ? "1" : "0" ); + ret_val += std::string( ", DeviceEn=" ) + ( ( val & ( 1 << 6 ) ) ? "1" : "0" ); + ret_val += ", AddrInc="; + switch( ( val >> 4 ) & 0x3 ) + { + case 0: + ret_val += "Auto-increment off"; + break; + case 1: + ret_val += "Increment single"; + break; + case 2: + ret_val += "Increment packed"; + break; + case 3: + ret_val += "Reserved"; + break; + } + ret_val += ", Size="; + switch( val & 0x7 ) + { + case 0: + ret_val += "Byte (8 bits)"; + break; + case 1: + ret_val += "Halfword (16 bits)"; + break; + case 2: + ret_val += "Word (32 bits)"; + break; + default: + ret_val += "Reserved"; + break; + } - break; - case SWDR_AP_BASE: - ret_val += "BASEADDR=" + int2str_sal(val >> 12, display_base, 20); - ret_val += std::string(", Format=") + ((val & (1<<1)) ? "1" : "0"); - ret_val += ", Entry present="; - if (val & 1) - ret_val += "Debug entry present"; - else - ret_val += "No debug entry present"; + break; + // case SWDR_AP_TAR: break; // these are just raw data + // case SWDR_AP_DRW: break; + // case SWDR_AP_BD0: break; + // case SWDR_AP_BD1: break; + // case SWDR_AP_BD2: break; + // case SWDR_AP_BD3: break; + case SWDR_AP_CFG: + if( val & 1 ) + ret_val = "Big-endian"; + else + ret_val = "Little-endian"; - break; - } + break; + case SWDR_AP_BASE: + ret_val += "BASEADDR=" + int2str_sal( val >> 12, display_base, 20 ); + ret_val += std::string( ", Format=" ) + ( ( val & ( 1 << 1 ) ) ? "1" : "0" ); + ret_val += ", Entry present="; + if( val & 1 ) + ret_val += "Debug entry present"; + else + ret_val += "No debug entry present"; - return ret_val; + break; + } + + return ret_val; } -std::string int2str(const U8 i) +std::string int2str( const U8 i ) { - char number_str[8]; - AnalyzerHelpers::GetNumberString(i, Decimal, 8, number_str, sizeof(number_str)); - return number_str; + char number_str[ 8 ]; + AnalyzerHelpers::GetNumberString( i, Decimal, 8, number_str, sizeof( number_str ) ); + return number_str; } -std::string int2str_sal(const U64 i, DisplayBase base, const int max_bits) +std::string int2str_sal( const U64 i, DisplayBase base, const int max_bits ) { - char number_str[256]; - AnalyzerHelpers::GetNumberString(i, base, max_bits, number_str, sizeof(number_str)); - return number_str; + char number_str[ 256 ]; + AnalyzerHelpers::GetNumberString( i, base, max_bits, number_str, sizeof( number_str ) ); + return number_str; } diff --git a/src/SWDUtils.h b/src/SWDUtils.h index 608ce74..0dbdb12 100644 --- a/src/SWDUtils.h +++ b/src/SWDUtils.h @@ -1,7 +1,7 @@ #pragma once #ifdef _WINDOWS -# include +#include #endif #include @@ -10,13 +10,13 @@ #include "SWDTypes.h" // returns string descriptions of the register name and the bits with values -std::string GetRegisterName(SWDRegisters reg); -std::string GetRegisterValueDesc(SWDRegisters reg, U32 val, DisplayBase display_base); +std::string GetRegisterName( SWDRegisters reg ); +std::string GetRegisterValueDesc( SWDRegisters reg, U32 val, DisplayBase display_base ); -std::string int2str_sal(const U64 i, DisplayBase base, const int max_bits = 8); -inline std::string int2str(const U64 i) +std::string int2str_sal( const U64 i, DisplayBase base, const int max_bits = 8 ); +inline std::string int2str( const U64 i ) { - return int2str_sal(i, Decimal, 64); + return int2str_sal( i, Decimal, 64 ); } /* @@ -24,14 +24,14 @@ inline std::string int2str(const U64 i) inline void debug(const std::string& str) { #if !defined(NDEBUG) && defined(_WINDOWS) - ::OutputDebugStringA(("----- " + str + "\n").c_str()); + ::OutputDebugStringA(("----- " + str + "\n").c_str()); #endif } inline void debug(const char* str) { #if !defined(NDEBUG) && defined(_WINDOWS) - debug(std::string(str)); + debug(std::string(str)); #endif } */ \ No newline at end of file