62Q2LUD4R67LXUGS76YSXLGE6EQM344XMXOPVGMSV4Q2ZZQO4K6AC using ColorBundle = pair<string, string>;using ColorPalette = map<string, string>;
using ColorBundle = pair<string, string>;using ColorPalette = map<string, string>;enum mod {bold,dim,italic,underlined,slow_blink,rapid_blink,reversed,hidden,crossed_out,};
enum mod {bold,dim,italic,underlined,slow_blink,rapid_blink,reversed,hidden,crossed_out,
class Style {public:string foreground;string background;vector<string> modifiers;public:Style() {}Style(string fg) : foreground(fg) {}Style(string fg, string bg) : foreground(fg), background(bg) {}Style(string fg, string bg, initializer_list<mod> mod): foreground(fg), background(bg) {loopOverMods(mod);}Style(initializer_list<mod> mod) { loopOverMods(mod); }void loopOverMods(initializer_list<mod> &mod) {for (auto i : mod) {switch (i) {case bold:modifiers.push_back("bold");break;case dim:modifiers.push_back("dim");break;case italic:modifiers.push_back("italic");break;case underlined:modifiers.push_back("underlined");break;case slow_blink:modifiers.push_back("slow_blink");break;case rapid_blink:modifiers.push_back("rapid_blink");break;case reversed:modifiers.push_back("reversed");break;case hidden:modifiers.push_back("hidden");break;case crossed_out:modifiers.push_back("crossed_out");}}}
void loopOverMods(initializer_list<mod> &mod) {for (auto i : mod) {switch(i) {case bold:modifiers.push_back("bold");break;case dim:modifiers.push_back("dim");break;case italic:modifiers.push_back("italic");break;case underlined:modifiers.push_back("underlined");break;case slow_blink:modifiers.push_back("slow_blink");break;case rapid_blink:modifiers.push_back("rapid_blink");break;case reversed:modifiers.push_back("reversed");break;case hidden:modifiers.push_back("hidden");break;case crossed_out:modifiers.push_back("crossed_out");}}
void checkGrammar(string &fg, string &bg) {if (fg.empty() || bg.empty()) {throw UndefinedColor();}if (!fg.empty() || !bg.empty()) {if (fg.at(0) != '#' || bg.at(0) != '#') {throw NoBang();
void checkGrammar(string &fg, string &bg) {if (fg.empty() || bg.empty() ) {throw UndefinedColor();}if(!fg.empty() || !bg.empty() ) {if(fg.at(0) != '#' || bg.at(0) != '#') {throw NoBang();}}if(fg.length() != 7 || bg.length() !=7 ) {throw BadColorLength();}}void checkGrammar(string &fg) {if (fg.empty()) {throw UndefinedColor();}if(!fg.empty() ) {if(fg.at(0) != '#') {throw NoBang();}}if(fg.length() != 7) {throw BadColorLength();}
}if (fg.length() != 7 || bg.length() != 7) {throw BadColorLength();}}void checkGrammar(string &fg) {if (fg.empty()) {throw UndefinedColor();}if (!fg.empty()) {if (fg.at(0) != '#') {throw NoBang();
void printMod() {for(auto it = modifiers.begin(); it != modifiers.end(); ++it) {if (it == modifiers.end()-1) {cout << "\"" << *it << "\"";}else {cout << "\"" << *it << "\"" <<", ";}}
}if (fg.length() != 7) {throw BadColorLength();}}void printMod() {for (auto it = modifiers.begin(); it != modifiers.end(); ++it) {if (it == modifiers.end() - 1) {cout << "\"" << *it << "\"";} else {cout << "\"" << *it << "\""<< ", ";
void print() {cout << scope << " = {" << foreground << background;
}}void print() {cout << scope << " = {" << foreground << background;if (!modifiers.empty() && foreground.empty() && background.empty( )) {cout << "modifiers = [";printMod();cout << "]";}
E(std::string scope):scope("\""+scope+"\"") {}void operator()() {
public:E(std::string scope) : scope("\"" + scope + "\"") {}E& operator = (const Style &s) {foreground = "fg = \"" + s.foreground + "\", ";background = "bg = \"" + s.background + "\"";modifiers = s.modifiers;