#include <iostream>
#include <string>
using namespace std;
int main() {
string test= "12345678123456789012";
string counters = test.substr(0, 8);
string idd = test.substr(8,12);
unsigned char bitmap = 0xD9;
bool offline = true;
if (bitmap & 0x80)
{
if (counters.length() > 6)
{
cout << "Acc1 [" << counters.substr(0,6) << "]" << endl;
counters = counters.substr(6);
}
else if (idd.length() >= 6)
{
cout << "Acc1 [" << idd.substr(0,6) << "]" << endl;
idd = idd.substr(6);
}
else
cout << "Error parsing Acc1" << endl;
}
if (bitmap & 0x40)
{
if (counters.length() > 6)
{
cout << "Acc2 [" << counters.substr(0,6) << "]" << endl;
counters = counters.substr(6);
}
else if (idd.length() >= 6)
{
cout << "Acc2 [" << idd.substr(0,6) << "]" << endl;
idd = idd.substr(6);
}
else
cout << "Error parsing Acc2" << endl;
}
if (bitmap & 0x20)
{
if (counters.length() > 6)
{
cout << "Acc3 [" << counters.substr(0,6) << "]" << endl;
counters = counters.substr(6);
}
else if (idd.length() >= 6)
{
cout << "Acc3 [" << idd.substr(0,6) << "]" << endl;
idd = idd.substr(6);
}
else
cout << "Error parsing Acc3" << endl;
}
if (bitmap & 0x10)
{
if (counters.length() >= 1)
{
cout << "Count1 [" << counters.substr(0,1) << "]" << endl;
counters.erase(0,1);
}
else if (idd.length() >= 1)
{
cout << "Count1 [" << idd.substr(0,1) << "]" << endl;
idd.erase(0,1);
}
else
cout << "Error parsing Count1" << endl;
}
if (bitmap & 0x08)
{
if (counters.length() >= 1)
{
cout << "Count2 [" << counters.substr(0,1) << "]" << endl;
counters.erase(0,1);
}
else if (idd.length() >= 1)
{
cout << "Count2 [" << idd.substr(0,1) << "]" << endl;
idd.erase(0,1);
}
else
cout << "Error parsing Count2" << endl;
}
if (bitmap & 0x04)
{
if (counters.length() >= 1)
{
cout << "Count3 [" << counters.substr(0,1) << "]" << endl;
counters.erase(0,1);
}
else if (idd.length() >= 1)
{
cout << "Count3 [" << idd.substr(0,1) << "]" << endl;
idd.erase(0,1);
}
else
cout << "Error parsing Count3" << endl;
}
if (bitmap & 0x02)
{
if (counters.length() >= 1)
{
cout << "Count4 [" << counters.substr(0,1) << "]" << endl;
counters.erase(0,1);
}
else if (idd.length() >= 1)
{
cout << "Count4 [" << idd.substr(0,1) << "]" << endl;
idd.erase(0,1);
}
else
cout << "Error parsing Count4" << endl;
}
if (offline)
{
if (idd.length() >= 3)
{
cout << "Offline [" << idd.substr(0,3) << "]" << endl;
idd.erase(0,3);
}
else
cout << "Error parsing Offline" << endl;
}
if (bitmap & 0x01)
{
if (idd.length() >= 3)
{
cout << "Static [" << idd.substr(0,3) << "]" << endl;
idd.erase(0,3);
}
else
cout << "Error parsing Static" << endl;
}
return 0;
}