#include "pinyinmap.h"

map<string, int32_t> initPhoneIDMap()
{
    map<string, int32_t> phoneIDMap;
phoneIDMap.insert(pair<string,int32_t>("sil",0));
phoneIDMap.insert(pair<string,int32_t>("eos",1));
phoneIDMap.insert(pair<string,int32_t>("sp",2));
phoneIDMap.insert(pair<string,int32_t>("#0",3));
phoneIDMap.insert(pair<string,int32_t>("#1",4));
phoneIDMap.insert(pair<string,int32_t>("#2",5));
phoneIDMap.insert(pair<string,int32_t>("#3",6));
phoneIDMap.insert(pair<string,int32_t>("^",7));
phoneIDMap.insert(pair<string,int32_t>("b",8));
phoneIDMap.insert(pair<string,int32_t>("c",9));
phoneIDMap.insert(pair<string,int32_t>("ch",10));
phoneIDMap.insert(pair<string,int32_t>("d",11));
phoneIDMap.insert(pair<string,int32_t>("f",12));
phoneIDMap.insert(pair<string,int32_t>("g",13));
phoneIDMap.insert(pair<string,int32_t>("h",14));
phoneIDMap.insert(pair<string,int32_t>("j",15));
phoneIDMap.insert(pair<string,int32_t>("k",16));
phoneIDMap.insert(pair<string,int32_t>("l",17));
phoneIDMap.insert(pair<string,int32_t>("m",18));
phoneIDMap.insert(pair<string,int32_t>("n",19));
phoneIDMap.insert(pair<string,int32_t>("p",20));
phoneIDMap.insert(pair<string,int32_t>("q",21));
phoneIDMap.insert(pair<string,int32_t>("r",22));
phoneIDMap.insert(pair<string,int32_t>("s",23));
phoneIDMap.insert(pair<string,int32_t>("sh",24));
phoneIDMap.insert(pair<string,int32_t>("t",25));
phoneIDMap.insert(pair<string,int32_t>("x",26));
phoneIDMap.insert(pair<string,int32_t>("z",27));
phoneIDMap.insert(pair<string,int32_t>("zh",28));
phoneIDMap.insert(pair<string,int32_t>("a1",29));
phoneIDMap.insert(pair<string,int32_t>("a2",30));
phoneIDMap.insert(pair<string,int32_t>("a3",31));
phoneIDMap.insert(pair<string,int32_t>("a4",32));
phoneIDMap.insert(pair<string,int32_t>("a5",33));
phoneIDMap.insert(pair<string,int32_t>("ai1",34));
phoneIDMap.insert(pair<string,int32_t>("ai2",35));
phoneIDMap.insert(pair<string,int32_t>("ai3",36));
phoneIDMap.insert(pair<string,int32_t>("ai4",37));
phoneIDMap.insert(pair<string,int32_t>("ai5",38));
phoneIDMap.insert(pair<string,int32_t>("an1",39));
phoneIDMap.insert(pair<string,int32_t>("an2",40));
phoneIDMap.insert(pair<string,int32_t>("an3",41));
phoneIDMap.insert(pair<string,int32_t>("an4",42));
phoneIDMap.insert(pair<string,int32_t>("an5",43));
phoneIDMap.insert(pair<string,int32_t>("ang1",44));
phoneIDMap.insert(pair<string,int32_t>("ang2",45));
phoneIDMap.insert(pair<string,int32_t>("ang3",46));
phoneIDMap.insert(pair<string,int32_t>("ang4",47));
phoneIDMap.insert(pair<string,int32_t>("ang5",48));
phoneIDMap.insert(pair<string,int32_t>("ao1",49));
phoneIDMap.insert(pair<string,int32_t>("ao2",50));
phoneIDMap.insert(pair<string,int32_t>("ao3",51));
phoneIDMap.insert(pair<string,int32_t>("ao4",52));
phoneIDMap.insert(pair<string,int32_t>("ao5",53));
phoneIDMap.insert(pair<string,int32_t>("e1",54));
phoneIDMap.insert(pair<string,int32_t>("e2",55));
phoneIDMap.insert(pair<string,int32_t>("e3",56));
phoneIDMap.insert(pair<string,int32_t>("e4",57));
phoneIDMap.insert(pair<string,int32_t>("e5",58));
phoneIDMap.insert(pair<string,int32_t>("ei1",59));
phoneIDMap.insert(pair<string,int32_t>("ei2",60));
phoneIDMap.insert(pair<string,int32_t>("ei3",61));
phoneIDMap.insert(pair<string,int32_t>("ei4",62));
phoneIDMap.insert(pair<string,int32_t>("ei5",63));
phoneIDMap.insert(pair<string,int32_t>("en1",64));
phoneIDMap.insert(pair<string,int32_t>("en2",65));
phoneIDMap.insert(pair<string,int32_t>("en3",66));
phoneIDMap.insert(pair<string,int32_t>("en4",67));
phoneIDMap.insert(pair<string,int32_t>("en5",68));
phoneIDMap.insert(pair<string,int32_t>("eng1",69));
phoneIDMap.insert(pair<string,int32_t>("eng2",70));
phoneIDMap.insert(pair<string,int32_t>("eng3",71));
phoneIDMap.insert(pair<string,int32_t>("eng4",72));
phoneIDMap.insert(pair<string,int32_t>("eng5",73));
phoneIDMap.insert(pair<string,int32_t>("er1",74));
phoneIDMap.insert(pair<string,int32_t>("er2",75));
phoneIDMap.insert(pair<string,int32_t>("er3",76));
phoneIDMap.insert(pair<string,int32_t>("er4",77));
phoneIDMap.insert(pair<string,int32_t>("er5",78));
phoneIDMap.insert(pair<string,int32_t>("i1",79));
phoneIDMap.insert(pair<string,int32_t>("i2",80));
phoneIDMap.insert(pair<string,int32_t>("i3",81));
phoneIDMap.insert(pair<string,int32_t>("i4",82));
phoneIDMap.insert(pair<string,int32_t>("i5",83));
phoneIDMap.insert(pair<string,int32_t>("ia1",84));
phoneIDMap.insert(pair<string,int32_t>("ia2",85));
phoneIDMap.insert(pair<string,int32_t>("ia3",86));
phoneIDMap.insert(pair<string,int32_t>("ia4",87));
phoneIDMap.insert(pair<string,int32_t>("ia5",88));
phoneIDMap.insert(pair<string,int32_t>("ian1",89));
phoneIDMap.insert(pair<string,int32_t>("ian2",90));
phoneIDMap.insert(pair<string,int32_t>("ian3",91));
phoneIDMap.insert(pair<string,int32_t>("ian4",92));
phoneIDMap.insert(pair<string,int32_t>("ian5",93));
phoneIDMap.insert(pair<string,int32_t>("iang1",94));
phoneIDMap.insert(pair<string,int32_t>("iang2",95));
phoneIDMap.insert(pair<string,int32_t>("iang3",96));
phoneIDMap.insert(pair<string,int32_t>("iang4",97));
phoneIDMap.insert(pair<string,int32_t>("iang5",98));
phoneIDMap.insert(pair<string,int32_t>("iao1",99));
phoneIDMap.insert(pair<string,int32_t>("iao2",100));
phoneIDMap.insert(pair<string,int32_t>("iao3",101));
phoneIDMap.insert(pair<string,int32_t>("iao4",102));
phoneIDMap.insert(pair<string,int32_t>("iao5",103));
phoneIDMap.insert(pair<string,int32_t>("ie1",104));
phoneIDMap.insert(pair<string,int32_t>("ie2",105));
phoneIDMap.insert(pair<string,int32_t>("ie3",106));
phoneIDMap.insert(pair<string,int32_t>("ie4",107));
phoneIDMap.insert(pair<string,int32_t>("ie5",108));
phoneIDMap.insert(pair<string,int32_t>("ii1",109));
phoneIDMap.insert(pair<string,int32_t>("ii2",110));
phoneIDMap.insert(pair<string,int32_t>("ii3",111));
phoneIDMap.insert(pair<string,int32_t>("ii4",112));
phoneIDMap.insert(pair<string,int32_t>("ii5",113));
phoneIDMap.insert(pair<string,int32_t>("iii1",114));
phoneIDMap.insert(pair<string,int32_t>("iii2",115));
phoneIDMap.insert(pair<string,int32_t>("iii3",116));
phoneIDMap.insert(pair<string,int32_t>("iii4",117));
phoneIDMap.insert(pair<string,int32_t>("iii5",118));
phoneIDMap.insert(pair<string,int32_t>("in1",119));
phoneIDMap.insert(pair<string,int32_t>("in2",120));
phoneIDMap.insert(pair<string,int32_t>("in3",121));
phoneIDMap.insert(pair<string,int32_t>("in4",122));
phoneIDMap.insert(pair<string,int32_t>("in5",123));
phoneIDMap.insert(pair<string,int32_t>("ing1",124));
phoneIDMap.insert(pair<string,int32_t>("ing2",125));
phoneIDMap.insert(pair<string,int32_t>("ing3",126));
phoneIDMap.insert(pair<string,int32_t>("ing4",127));
phoneIDMap.insert(pair<string,int32_t>("ing5",128));
phoneIDMap.insert(pair<string,int32_t>("iong1",129));
phoneIDMap.insert(pair<string,int32_t>("iong2",130));
phoneIDMap.insert(pair<string,int32_t>("iong3",131));
phoneIDMap.insert(pair<string,int32_t>("iong4",132));
phoneIDMap.insert(pair<string,int32_t>("iong5",133));
phoneIDMap.insert(pair<string,int32_t>("iou1",134));
phoneIDMap.insert(pair<string,int32_t>("iou2",135));
phoneIDMap.insert(pair<string,int32_t>("iou3",136));
phoneIDMap.insert(pair<string,int32_t>("iou4",137));
phoneIDMap.insert(pair<string,int32_t>("iou5",138));
phoneIDMap.insert(pair<string,int32_t>("o1",139));
phoneIDMap.insert(pair<string,int32_t>("o2",140));
phoneIDMap.insert(pair<string,int32_t>("o3",141));
phoneIDMap.insert(pair<string,int32_t>("o4",142));
phoneIDMap.insert(pair<string,int32_t>("o5",143));
phoneIDMap.insert(pair<string,int32_t>("ong1",144));
phoneIDMap.insert(pair<string,int32_t>("ong2",145));
phoneIDMap.insert(pair<string,int32_t>("ong3",146));
phoneIDMap.insert(pair<string,int32_t>("ong4",147));
phoneIDMap.insert(pair<string,int32_t>("ong5",148));
phoneIDMap.insert(pair<string,int32_t>("ou1",149));
phoneIDMap.insert(pair<string,int32_t>("ou2",150));
phoneIDMap.insert(pair<string,int32_t>("ou3",151));
phoneIDMap.insert(pair<string,int32_t>("ou4",152));
phoneIDMap.insert(pair<string,int32_t>("ou5",153));
phoneIDMap.insert(pair<string,int32_t>("u1",154));
phoneIDMap.insert(pair<string,int32_t>("u2",155));
phoneIDMap.insert(pair<string,int32_t>("u3",156));
phoneIDMap.insert(pair<string,int32_t>("u4",157));
phoneIDMap.insert(pair<string,int32_t>("u5",158));
phoneIDMap.insert(pair<string,int32_t>("ua1",159));
phoneIDMap.insert(pair<string,int32_t>("ua2",160));
phoneIDMap.insert(pair<string,int32_t>("ua3",161));
phoneIDMap.insert(pair<string,int32_t>("ua4",162));
phoneIDMap.insert(pair<string,int32_t>("ua5",163));
phoneIDMap.insert(pair<string,int32_t>("uai1",164));
phoneIDMap.insert(pair<string,int32_t>("uai2",165));
phoneIDMap.insert(pair<string,int32_t>("uai3",166));
phoneIDMap.insert(pair<string,int32_t>("uai4",167));
phoneIDMap.insert(pair<string,int32_t>("uai5",168));
phoneIDMap.insert(pair<string,int32_t>("uan1",169));
phoneIDMap.insert(pair<string,int32_t>("uan2",170));
phoneIDMap.insert(pair<string,int32_t>("uan3",171));
phoneIDMap.insert(pair<string,int32_t>("uan4",172));
phoneIDMap.insert(pair<string,int32_t>("uan5",173));
phoneIDMap.insert(pair<string,int32_t>("uang1",174));
phoneIDMap.insert(pair<string,int32_t>("uang2",175));
phoneIDMap.insert(pair<string,int32_t>("uang3",176));
phoneIDMap.insert(pair<string,int32_t>("uang4",177));
phoneIDMap.insert(pair<string,int32_t>("uang5",178));
phoneIDMap.insert(pair<string,int32_t>("uei1",179));
phoneIDMap.insert(pair<string,int32_t>("uei2",180));
phoneIDMap.insert(pair<string,int32_t>("uei3",181));
phoneIDMap.insert(pair<string,int32_t>("uei4",182));
phoneIDMap.insert(pair<string,int32_t>("uei5",183));
phoneIDMap.insert(pair<string,int32_t>("uen1",184));
phoneIDMap.insert(pair<string,int32_t>("uen2",185));
phoneIDMap.insert(pair<string,int32_t>("uen3",186));
phoneIDMap.insert(pair<string,int32_t>("uen4",187));
phoneIDMap.insert(pair<string,int32_t>("uen5",188));
phoneIDMap.insert(pair<string,int32_t>("ueng1",189));
phoneIDMap.insert(pair<string,int32_t>("ueng2",190));
phoneIDMap.insert(pair<string,int32_t>("ueng3",191));
phoneIDMap.insert(pair<string,int32_t>("ueng4",192));
phoneIDMap.insert(pair<string,int32_t>("ueng5",193));
phoneIDMap.insert(pair<string,int32_t>("uo1",194));
phoneIDMap.insert(pair<string,int32_t>("uo2",195));
phoneIDMap.insert(pair<string,int32_t>("uo3",196));
phoneIDMap.insert(pair<string,int32_t>("uo4",197));
phoneIDMap.insert(pair<string,int32_t>("uo5",198));
phoneIDMap.insert(pair<string,int32_t>("v1",199));
phoneIDMap.insert(pair<string,int32_t>("v2",200));
phoneIDMap.insert(pair<string,int32_t>("v3",201));
phoneIDMap.insert(pair<string,int32_t>("v4",202));
phoneIDMap.insert(pair<string,int32_t>("v5",203));
phoneIDMap.insert(pair<string,int32_t>("van1",204));
phoneIDMap.insert(pair<string,int32_t>("van2",205));
phoneIDMap.insert(pair<string,int32_t>("van3",206));
phoneIDMap.insert(pair<string,int32_t>("van4",207));
phoneIDMap.insert(pair<string,int32_t>("van5",208));
phoneIDMap.insert(pair<string,int32_t>("ve1",209));
phoneIDMap.insert(pair<string,int32_t>("ve2",210));
phoneIDMap.insert(pair<string,int32_t>("ve3",211));
phoneIDMap.insert(pair<string,int32_t>("ve4",212));
phoneIDMap.insert(pair<string,int32_t>("ve5",213));
phoneIDMap.insert(pair<string,int32_t>("vn1",214));
phoneIDMap.insert(pair<string,int32_t>("vn2",215));
phoneIDMap.insert(pair<string,int32_t>("vn3",216));
phoneIDMap.insert(pair<string,int32_t>("vn4",217));
phoneIDMap.insert(pair<string,int32_t>("vn5",218));

    return phoneIDMap;
}

map<uint16_t, uint16_t> initNumMap()
{
    map<uint16_t,uint16_t> numMap;
    numMap.insert(pair<uint16_t, uint16_t>(0x31,0x4e00));
    numMap.insert(pair<uint16_t, uint16_t>(0x32,0x4e8c));
    numMap.insert(pair<uint16_t, uint16_t>(0x33,0x4e09));
    numMap.insert(pair<uint16_t, uint16_t>(0x34,0x56db));
    numMap.insert(pair<uint16_t, uint16_t>(0x35,0x4e94));
    numMap.insert(pair<uint16_t, uint16_t>(0x36,0x516d));
    numMap.insert(pair<uint16_t, uint16_t>(0x37,0x4e03));
    numMap.insert(pair<uint16_t, uint16_t>(0x38,0x516b));
    numMap.insert(pair<uint16_t, uint16_t>(0x39,0x4e5d));
    numMap.insert(pair<uint16_t, uint16_t>(0x30,0x96f6));

    return numMap;
    
}


multimap<string, vector<string> > initPinyin2Phone()
{

    multimap<string, vector<string>> pingyin2PhoneMap;
    pingyin2PhoneMap.insert(pair<string, vector<string>>("a", vector<string>({"^", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ai",vector<string>({"^", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ai", vector<string>({"^", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("an", vector<string>({"^", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ang", vector<string>({"^", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ao", vector<string>({"^", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ba", vector<string>({"b", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bai", vector<string>({"b", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ban", vector<string>({"b", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bang", vector<string>({"b", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bao", vector<string>({"b", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("be", vector<string>({"b", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bei", vector<string>({"b", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ben", vector<string>({"b", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("beng", vector<string>({"b", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bi", vector<string>({"b", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bian", vector<string>({"b", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("biao", vector<string>({"b", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bie", vector<string>({"b", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bin", vector<string>({"b", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bing", vector<string>({"b", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bo", vector<string>({"b", "o"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("bu", vector<string>({"b", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ca", vector<string>({"c", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cai", vector<string>({"c", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("can", vector<string>({"c", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cang", vector<string>({"c", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cao", vector<string>({"c", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ce", vector<string>({"c", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cen", vector<string>({"c", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ceng", vector<string>({"c", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cha", vector<string>({"ch", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chai", vector<string>({"ch", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chan", vector<string>({"ch", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chang", vector<string>({"ch", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chao", vector<string>({"ch", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("che", vector<string>({"ch", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chen", vector<string>({"ch", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cheng", vector<string>({"ch", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chi", vector<string>({"ch", "iii"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chong", vector<string>({"ch", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chou", vector<string>({"ch", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chu", vector<string>({"ch", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chua", vector<string>({"ch", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chuai", vector<string>({"ch", "uai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chuan", vector<string>({"ch", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chuang", vector<string>({"ch", "uang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chui", vector<string>({"ch", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chun", vector<string>({"ch", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("chuo", vector<string>({"ch", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ci", vector<string>({"c", "ii"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cong", vector<string>({"c", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cou", vector<string>({"c", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cu", vector<string>({"c", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cuan", vector<string>({"c", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cui", vector<string>({"c", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cun", vector<string>({"c", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("cuo", vector<string>({"c", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("da", vector<string>({"d", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dai", vector<string>({"d", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dan", vector<string>({"d", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dang", vector<string>({"d", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dao", vector<string>({"d", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("de", vector<string>({"d", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dei", vector<string>({"d", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("den", vector<string>({"d", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("deng", vector<string>({"d", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("di", vector<string>({"d", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dia", vector<string>({"d", "ia"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dian", vector<string>({"d", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("diao", vector<string>({"d", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("die", vector<string>({"d", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ding", vector<string>({"d", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("diu", vector<string>({"d", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dong", vector<string>({"d", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dou", vector<string>({"d", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("du", vector<string>({"d", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("duan", vector<string>({"d", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dui", vector<string>({"d", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("dun", vector<string>({"d", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("duo", vector<string>({"d", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("e", vector<string>({"^", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ei", vector<string>({"^", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("en", vector<string>({"^", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ng", vector<string>({"^", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("eng", vector<string>({"^", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("er", vector<string>({"^", "er"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fa", vector<string>({"f", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fan", vector<string>({"f", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fang", vector<string>({"f", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fei", vector<string>({"f", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fen", vector<string>({"f", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("feng", vector<string>({"f", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fo", vector<string>({"f", "o"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fou", vector<string>({"f", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("fu", vector<string>({"f", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ga", vector<string>({"g", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gai", vector<string>({"g", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gan", vector<string>({"g", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gang", vector<string>({"g", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gao", vector<string>({"g", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ge", vector<string>({"g", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gei", vector<string>({"g", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gen", vector<string>({"g", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("geng", vector<string>({"g", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gong", vector<string>({"g", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gou", vector<string>({"g", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gu", vector<string>({"g", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gua", vector<string>({"g", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("guai", vector<string>({"g", "uai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("guan", vector<string>({"g", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("guang", vector<string>({"g", "uang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gui", vector<string>({"g", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("gun", vector<string>({"g", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("guo", vector<string>({"g", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ha", vector<string>({"h", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hai", vector<string>({"h", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("han", vector<string>({"h", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hang", vector<string>({"h", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hao", vector<string>({"h", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("he", vector<string>({"h", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hei", vector<string>({"h", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hen", vector<string>({"h", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("heng", vector<string>({"h", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hong", vector<string>({"h", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hou", vector<string>({"h", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hu", vector<string>({"h", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hua", vector<string>({"h", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("huai", vector<string>({"h", "uai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("huan", vector<string>({"h", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("huang", vector<string>({"h", "uang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hui", vector<string>({"h", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("hun", vector<string>({"h", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("huo", vector<string>({"h", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ji", vector<string>({"j", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jia", vector<string>({"j", "ia"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jian", vector<string>({"j", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jiang", vector<string>({"j", "iang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jiao", vector<string>({"j", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jie", vector<string>({"j", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jin", vector<string>({"j", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jing", vector<string>({"j", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jiong", vector<string>({"j", "iong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jiu", vector<string>({"j", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ju", vector<string>({"j", "v"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("juan", vector<string>({"j", "van"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jue", vector<string>({"j", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("jun", vector<string>({"j", "vn"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ka", vector<string>({"k", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kai", vector<string>({"k", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kan", vector<string>({"k", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kang", vector<string>({"k", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kao", vector<string>({"k", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ke", vector<string>({"k", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kei", vector<string>({"k", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ken", vector<string>({"k", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("keng", vector<string>({"k", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kong", vector<string>({"k", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kou", vector<string>({"k", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ku", vector<string>({"k", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kua", vector<string>({"k", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kuai", vector<string>({"k", "uai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kuan", vector<string>({"k", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kuang", vector<string>({"k", "uang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kui", vector<string>({"k", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kun", vector<string>({"k", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("kuo", vector<string>({"k", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("la", vector<string>({"l", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lai", vector<string>({"l", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lan", vector<string>({"l", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lang", vector<string>({"l", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lao", vector<string>({"l", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("le", vector<string>({"l", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lei", vector<string>({"l", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("leng", vector<string>({"l", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("li", vector<string>({"l", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lia", vector<string>({"l", "ia"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lian", vector<string>({"l", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("liang", vector<string>({"l", "iang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("liao", vector<string>({"l", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lie", vector<string>({"l", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lin", vector<string>({"l", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ling", vector<string>({"l", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("liu", vector<string>({"l", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lo", vector<string>({"l", "o"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("long", vector<string>({"l", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lou", vector<string>({"l", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lu", vector<string>({"l", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lv", vector<string>({"l", "v"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("luan", vector<string>({"l", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lve", vector<string>({"l", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lue", vector<string>({"l", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("lun", vector<string>({"l", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("luo", vector<string>({"l", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ma", vector<string>({"m", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mai", vector<string>({"m", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("man", vector<string>({"m", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mang", vector<string>({"m", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mao", vector<string>({"m", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("me", vector<string>({"m", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mei", vector<string>({"m", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("men", vector<string>({"m", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("meng", vector<string>({"m", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mi", vector<string>({"m", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mian", vector<string>({"m", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("miao", vector<string>({"m", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mie", vector<string>({"m", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("min", vector<string>({"m", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ming", vector<string>({"m", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("miu", vector<string>({"m", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mo", vector<string>({"m", "o"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mou", vector<string>({"m", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("mu", vector<string>({"m", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("na", vector<string>({"n", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nai", vector<string>({"n", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nan", vector<string>({"n", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nang", vector<string>({"n", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nao", vector<string>({"n", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ne", vector<string>({"n", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nei", vector<string>({"n", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nen", vector<string>({"n", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("neng", vector<string>({"n", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ni", vector<string>({"n", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nia", vector<string>({"n", "ia"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nian", vector<string>({"n", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("niang", vector<string>({"n", "iang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("niao", vector<string>({"n", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nie", vector<string>({"n", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nin", vector<string>({"n", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ning", vector<string>({"n", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("niu", vector<string>({"n", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nong", vector<string>({"n", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nou", vector<string>({"n", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nu", vector<string>({"n", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nv", vector<string>({"n", "v"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nuan", vector<string>({"n", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nve", vector<string>({"n", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nue", vector<string>({"n", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("nuo", vector<string>({"n", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("o", vector<string>({"^", "o"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ou", vector<string>({"^", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pa", vector<string>({"p", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pai", vector<string>({"p", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pan", vector<string>({"p", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pang", vector<string>({"p", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pao", vector<string>({"p", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pe", vector<string>({"p", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pei", vector<string>({"p", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pen", vector<string>({"p", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("peng", vector<string>({"p", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pi", vector<string>({"p", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pian", vector<string>({"p", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("piao", vector<string>({"p", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pie", vector<string>({"p", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pin", vector<string>({"p", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ping", vector<string>({"p", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("po", vector<string>({"p", "o"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pou", vector<string>({"p", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("pu", vector<string>({"p", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qi", vector<string>({"q", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qia", vector<string>({"q", "ia"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qian", vector<string>({"q", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qiang", vector<string>({"q", "iang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qiao", vector<string>({"q", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qie", vector<string>({"q", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qin", vector<string>({"q", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qing", vector<string>({"q", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qiong", vector<string>({"q", "iong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qiu", vector<string>({"q", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qu", vector<string>({"q", "v"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("quan", vector<string>({"q", "van"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("que", vector<string>({"q", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("qun", vector<string>({"q", "vn"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ran", vector<string>({"r", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("rang", vector<string>({"r", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("rao", vector<string>({"r", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("re", vector<string>({"r", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ren", vector<string>({"r", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("reng", vector<string>({"r", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ri", vector<string>({"r", "iii"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("rong", vector<string>({"r", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("rou", vector<string>({"r", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ru", vector<string>({"r", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("rua", vector<string>({"r", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ruan", vector<string>({"r", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("rui", vector<string>({"r", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("run", vector<string>({"r", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ruo", vector<string>({"r", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sa", vector<string>({"s", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sai", vector<string>({"s", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("san", vector<string>({"s", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sang", vector<string>({"s", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sao", vector<string>({"s", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("se", vector<string>({"s", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sen", vector<string>({"s", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("seng", vector<string>({"s", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sha", vector<string>({"sh", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shai", vector<string>({"sh", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shan", vector<string>({"sh", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shang", vector<string>({"sh", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shao", vector<string>({"sh", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("she", vector<string>({"sh", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shei", vector<string>({"sh", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shen", vector<string>({"sh", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sheng", vector<string>({"sh", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shi", vector<string>({"sh", "iii"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shou", vector<string>({"sh", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shu", vector<string>({"sh", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shua", vector<string>({"sh", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shuai", vector<string>({"sh", "uai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shuan", vector<string>({"sh", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shuang", vector<string>({"sh", "uang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shui", vector<string>({"sh", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shun", vector<string>({"sh", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("shuo", vector<string>({"sh", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("si", vector<string>({"s", "ii"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("song", vector<string>({"s", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sou", vector<string>({"s", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("su", vector<string>({"s", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("suan", vector<string>({"s", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sui", vector<string>({"s", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("sun", vector<string>({"s", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("suo", vector<string>({"s", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ta", vector<string>({"t", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tai", vector<string>({"t", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tan", vector<string>({"t", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tang", vector<string>({"t", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tao", vector<string>({"t", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("te", vector<string>({"t", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tei", vector<string>({"t", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("teng", vector<string>({"t", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ti", vector<string>({"t", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tian", vector<string>({"t", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tiao", vector<string>({"t", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tie", vector<string>({"t", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ting", vector<string>({"t", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tong", vector<string>({"t", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tou", vector<string>({"t", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tu", vector<string>({"t", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tuan", vector<string>({"t", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tui", vector<string>({"t", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tun", vector<string>({"t", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("tuo", vector<string>({"t", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wa", vector<string>({"^", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wai", vector<string>({"^", "uai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wan", vector<string>({"^", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wang", vector<string>({"^", "uang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wei", vector<string>({"^", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wen", vector<string>({"^", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("weng", vector<string>({"^", "ueng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wo", vector<string>({"^", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("wu", vector<string>({"^", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xi", vector<string>({"x", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xia", vector<string>({"x", "ia"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xian", vector<string>({"x", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xiang", vector<string>({"x", "iang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xiao", vector<string>({"x", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xie", vector<string>({"x", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xin", vector<string>({"x", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xing", vector<string>({"x", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xiong", vector<string>({"x", "iong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xiu", vector<string>({"x", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xu", vector<string>({"x", "v"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xuan", vector<string>({"x", "van"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xue", vector<string>({"x", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("xun", vector<string>({"x", "vn"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ya", vector<string>({"^", "ia"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yan", vector<string>({"^", "ian"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yang", vector<string>({"^", "iang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yao", vector<string>({"^", "iao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ye", vector<string>({"^", "ie"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yi", vector<string>({"^", "i"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yin", vector<string>({"^", "in"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ying", vector<string>({"^", "ing"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yo", vector<string>({"^", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yong", vector<string>({"^", "iong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("you", vector<string>({"^", "iou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yu", vector<string>({"^", "v"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yuan", vector<string>({"^", "van"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yue", vector<string>({"^", "ve"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("yun", vector<string>({"^", "vn"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("za", vector<string>({"z", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zai", vector<string>({"z", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zan", vector<string>({"z", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zang", vector<string>({"z", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zao", vector<string>({"z", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("ze", vector<string>({"z", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zei", vector<string>({"z", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zen", vector<string>({"z", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zeng", vector<string>({"z", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zha", vector<string>({"zh", "a"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhai", vector<string>({"zh", "ai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhan", vector<string>({"zh", "an"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhang", vector<string>({"zh", "ang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhao", vector<string>({"zh", "ao"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhe", vector<string>({"zh", "e"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhei", vector<string>({"zh", "ei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhen", vector<string>({"zh", "en"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zheng", vector<string>({"zh", "eng"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhi", vector<string>({"zh", "iii"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhong", vector<string>({"zh", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhou", vector<string>({"zh", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhu", vector<string>({"zh", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhua", vector<string>({"zh", "ua"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhuai", vector<string>({"zh", "uai"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhuan", vector<string>({"zh", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhuang", vector<string>({"zh", "uang"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhui", vector<string>({"zh", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhun", vector<string>({"zh", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zhuo", vector<string>({"zh", "uo"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zi", vector<string>({"z", "ii"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zong", vector<string>({"z", "ong"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zou", vector<string>({"z", "ou"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zu", vector<string>({"z", "u"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zuan", vector<string>({"z", "uan"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zui", vector<string>({"z", "uei"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zun", vector<string>({"z", "uen"})));
    pingyin2PhoneMap.insert(pair<string, vector<string>>("zuo", vector<string>({"z", "uo"})));

    return pingyin2PhoneMap;

}


