#include <map>
#include <string>
#include <stdio.h>
 
enum InputTypes { Manual, Automatic, Assisted, Imported, Offline };
 
struct Params
{
    int inputType;
    std::string moduleName;
    int flag;
};
 
int main()
{
    std::map<std::string, Params> options {
        { "Add",       { Manual, "RecordLib", 0 } },
        { "Open",      { Assisted, "ViewLib", 1 } },
        { "Close",     { Imported, "EditLib", 2 } },
        { "Inventory", { Automatic, "ControlLib", 3 } },
        { "Report",    { Offline, "ReportLib", 4 } }
    };
 
    for (std::map<std::string, Params>::iterator iter = options.begin(); iter != options.end(); ++iter)
    {
        printf("Entry: %s ==> { %d, %s, %d }\n", iter->first.c_str(),
            iter->second.inputType, iter->second.moduleName.c_str(), iter->second.flag);
    }
    return 0;
}
				I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHN0ZGlvLmg+CgplbnVtIElucHV0VHlwZXMgeyBNYW51YWwsIEF1dG9tYXRpYywgQXNzaXN0ZWQsIEltcG9ydGVkLCBPZmZsaW5lIH07CgpzdHJ1Y3QgUGFyYW1zCnsKICAgIGludCBpbnB1dFR5cGU7CiAgICBzdGQ6OnN0cmluZyBtb2R1bGVOYW1lOwogICAgaW50IGZsYWc7Cn07CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBQYXJhbXM+IG9wdGlvbnMgewogICAgICAgIHsgIkFkZCIsICAgICAgIHsgTWFudWFsLCAiUmVjb3JkTGliIiwgMCB9IH0sCiAgICAgICAgeyAiT3BlbiIsICAgICAgeyBBc3Npc3RlZCwgIlZpZXdMaWIiLCAxIH0gfSwKICAgICAgICB7ICJDbG9zZSIsICAgICB7IEltcG9ydGVkLCAiRWRpdExpYiIsIDIgfSB9LAogICAgICAgIHsgIkludmVudG9yeSIsIHsgQXV0b21hdGljLCAiQ29udHJvbExpYiIsIDMgfSB9LAogICAgICAgIHsgIlJlcG9ydCIsICAgIHsgT2ZmbGluZSwgIlJlcG9ydExpYiIsIDQgfSB9CiAgICB9OwoKICAgIGZvciAoc3RkOjptYXA8c3RkOjpzdHJpbmcsIFBhcmFtcz46Oml0ZXJhdG9yIGl0ZXIgPSBvcHRpb25zLmJlZ2luKCk7IGl0ZXIgIT0gb3B0aW9ucy5lbmQoKTsgKytpdGVyKQogICAgewogICAgICAgIHByaW50ZigiRW50cnk6ICVzID09PiB7ICVkLCAlcywgJWQgfVxuIiwgaXRlci0+Zmlyc3QuY19zdHIoKSwKICAgICAgICAgICAgaXRlci0+c2Vjb25kLmlucHV0VHlwZSwgaXRlci0+c2Vjb25kLm1vZHVsZU5hbWUuY19zdHIoKSwgaXRlci0+c2Vjb25kLmZsYWcpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=