1 |
- {"version":3,"file":"7816-7816.js?v=31ba25cd341e62240289","mappings":"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AE,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,KAAM,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GA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uB,CAAE,QAAW,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,QAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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","sources":["webpack:///nextcloud/node_modules/@nextcloud/browser-storage/dist/index.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/dist/scopedstorage.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/dist/storagebuilder.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/a-callable.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/an-object.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-includes.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-iteration.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-method-has-species-support.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-species-constructor.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-species-create.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof-raw.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property-descriptor.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/define-built-in.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/define-global-property.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/document-all.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/document-create-element.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/engine-user-agent.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/engine-v8-version.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/enum-bug-keys.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/function-bind-context.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/function-bind-native.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/function-call.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/function-name.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/function-uncurry-this-raw.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/function-uncurry-this.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/get-built-in.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/get-method.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has-own-property.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/hidden-keys.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/ie8-dom-define.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/indexed-object.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/inspect-source.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/internal-state.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-array.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-callable.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-constructor.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-forced.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-null-or-undefined.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-pure.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-regexp.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-symbol.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/length-of-array-like.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/make-built-in.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/math-trunc.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/not-a-regexp.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-define-property.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-is-prototype-of.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys-internal.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-to-string.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/own-keys.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/require-object-coercible.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-key.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-store.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-absolute-index.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-indexed-object.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-object.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-primitive.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-property-key.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-string-tag-support.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-string.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/try-to-string.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/uid.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.concat.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.filter.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.map.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.define-property.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.keys.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.to-string.js","webpack:///nextcloud/node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.string.starts-with.js","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearAll = clearAll;\nexports.clearNonPersistent = clearNonPersistent;\nexports.getBuilder = getBuilder;\nrequire(\"core-js/modules/es.array.map.js\");\nrequire(\"core-js/modules/es.array.filter.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.object.keys.js\");\nrequire(\"core-js/modules/es.string.starts-with.js\");\nvar _storagebuilder = _interopRequireDefault(require(\"./storagebuilder\"));\nvar _scopedstorage = _interopRequireDefault(require(\"./scopedstorage\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction getBuilder(appId) {\n return new _storagebuilder.default(appId);\n}\nfunction clearStorage(storage, pred) {\n Object.keys(storage).filter(function (k) {\n return pred ? pred(k) : true;\n }).map(storage.removeItem.bind(storage));\n}\nfunction clearAll() {\n var storages = [window.sessionStorage, window.localStorage];\n storages.map(function (s) {\n return clearStorage(s);\n });\n}\nfunction clearNonPersistent() {\n var storages = [window.sessionStorage, window.localStorage];\n storages.map(function (s) {\n return clearStorage(s, function (k) {\n return !k.startsWith(_scopedstorage.default.GLOBAL_SCOPE_PERSISTENT);\n });\n });\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nrequire(\"core-js/modules/es.array.concat.js\");\nrequire(\"core-js/modules/es.array.map.js\");\nrequire(\"core-js/modules/es.array.filter.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.object.keys.js\");\nrequire(\"core-js/modules/es.string.starts-with.js\");\nrequire(\"core-js/modules/es.object.define-property.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar ScopedStorage = /*#__PURE__*/function () {\n function ScopedStorage(scope, wrapped, persistent) {\n _classCallCheck(this, ScopedStorage);\n _defineProperty(this, \"scope\", void 0);\n _defineProperty(this, \"wrapped\", void 0);\n this.scope = \"\".concat(persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE, \"_\").concat(btoa(scope), \"_\");\n this.wrapped = wrapped;\n }\n _createClass(ScopedStorage, [{\n key: \"scopeKey\",\n value: function scopeKey(key) {\n return \"\".concat(this.scope).concat(key);\n }\n }, {\n key: \"setItem\",\n value: function setItem(key, value) {\n this.wrapped.setItem(this.scopeKey(key), value);\n }\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n return this.wrapped.getItem(this.scopeKey(key));\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(key) {\n this.wrapped.removeItem(this.scopeKey(key));\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var _this = this;\n Object.keys(this.wrapped).filter(function (key) {\n return key.startsWith(_this.scope);\n }).map(this.wrapped.removeItem.bind(this.wrapped));\n }\n }]);\n return ScopedStorage;\n}();\nexports.default = ScopedStorage;\n_defineProperty(ScopedStorage, \"GLOBAL_SCOPE_VOLATILE\", 'nextcloud_vol');\n_defineProperty(ScopedStorage, \"GLOBAL_SCOPE_PERSISTENT\", 'nextcloud_per');\n//# sourceMappingURL=scopedstorage.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nrequire(\"core-js/modules/es.object.define-property.js\");\nvar _scopedstorage = _interopRequireDefault(require(\"./scopedstorage\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar StorageBuilder = /*#__PURE__*/function () {\n function StorageBuilder(appId) {\n _classCallCheck(this, StorageBuilder);\n _defineProperty(this, \"appId\", void 0);\n _defineProperty(this, \"persisted\", false);\n _defineProperty(this, \"clearedOnLogout\", false);\n this.appId = appId;\n }\n _createClass(StorageBuilder, [{\n key: \"persist\",\n value: function persist() {\n var _persist = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.persisted = _persist;\n return this;\n }\n }, {\n key: \"clearOnLogout\",\n value: function clearOnLogout() {\n var clear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.clearedOnLogout = clear;\n return this;\n }\n }, {\n key: \"build\",\n value: function build() {\n return new _scopedstorage.default(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);\n }\n }]);\n return StorageBuilder;\n}();\nexports.default = StorageBuilder;\n//# sourceMappingURL=storagebuilder.js.map","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nvar toString = uncurryThisRaw({}.toString);\nvar stringSlice = uncurryThisRaw(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = function (fn) {\n return NATIVE_BIND ? uncurryThisWithBind(fn) : function () {\n return call.apply(fn, arguments);\n };\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThisRaw(fn);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially) )?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,E:0,F:0.0126987,G:0.0634934,A:0,B:0.368262,PC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"PC\",\"J\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{PC:962323200,J:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.100804,\"1\":0.02291,\"2\":0.036656,\"3\":0.041238,\"4\":0.109968,\"5\":2.53385,\"6\":2.08939,C:0.009164,K:0.009164,L:0.009164,H:0.009164,M:0,N:0.004582,O:0.013746,P:0,Q:0.009164,R:0.009164,S:0.009164,T:0.009164,U:0.004582,V:0.009164,W:0.041238,X:0.004582,Y:0.004582,Z:0.009164,a:0,b:0.013746,c:0,d:0,e:0,f:0,g:0,h:0,i:0.018328,j:0,k:0,l:0,m:0,s:0,t:0,u:0,v:0.009164,w:0.009164,x:0.073312,y:0.013746,z:0.100804,D:0.009164},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"H\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,C:1438128000,K:1447286400,L:1470096000,H:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,s:1659657600,t:1661990400,u:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,D:1698969600},D:{C:\"ms\",K:\"ms\",L:\"ms\",H:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.009164,\"1\":0.013746,\"2\":0.013746,\"3\":0.339068,\"4\":0.02291,\"5\":0.096222,\"6\":1.49831,\"7\":0,\"8\":0,\"9\":0,QC:0,\"4B\":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0.009164,C:0,K:0,L:0,H:0,M:0,N:0,O:0,n:0,o:0,p:0,q:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0.004582,UB:0,VB:0,WB:0,XB:0.02291,YB:0,ZB:0.013746,aB:0,bB:0.054984,cB:0.004582,dB:0.013746,eB:0.004582,fB:0.018328,gB:0,hB:0,\"5B\":0.009164,iB:0,\"6B\":0,jB:0,kB:0.004582,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,r:0,uB:0,vB:0,wB:0,xB:0,yB:0.036656,P:0,Q:0,R:0,\"7B\":0,S:0.004582,T:0,U:0,V:0,W:0,X:0.004582,Y:0,Z:0,a:0.004582,b:0,c:0,d:0.004582,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.050402,m:0.036656,s:0,t:0.004582,u:0,v:0.004582,w:0.009164,x:0.009164,y:0.009164,z:0.009164,D:0.27492,\"8B\":0,\"9B\":0,AC:0,RC:0,SC:0},B:\"moz\",C:[\"QC\",\"4B\",\"RC\",\"SC\",\"I\",\"7\",\"J\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"K\",\"L\",\"H\",\"M\",\"N\",\"O\",\"8\",\"n\",\"o\",\"p\",\"q\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"5B\",\"iB\",\"6B\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"r\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"P\",\"Q\",\"R\",\"7B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"D\",\"8B\",\"9B\",\"AC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1308614400,\"8\":1357603200,\"9\":1375747200,QC:1161648000,\"4B\":1213660800,RC:1246320000,SC:1264032000,I:1300752000,J:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,H:1342483200,M:1346112000,N:1349740800,O:1353628800,n:1361232000,o:1364860800,p:1368489600,q:1372118400,AB:1379376000,BB:1386633600,CB:1391472000,DB:1395100800,EB:1398729600,FB:1402358400,GB:1405987200,HB:1409616000,IB:1413244800,JB:1417392000,KB:1421107200,LB:1424736000,MB:1428278400,NB:1431475200,OB:1435881600,PB:1439251200,QB:1442880000,RB:1446508800,SB:1450137600,TB:1453852800,UB:1457395200,VB:1461628800,WB:1465257600,XB:1470096000,YB:1474329600,ZB:1479168000,aB:1485216000,bB:1488844800,cB:1492560000,dB:1497312000,eB:1502150400,fB:1506556800,gB:1510617600,hB:1516665600,\"5B\":1520985600,iB:1525824000,\"6B\":1529971200,jB:1536105600,kB:1540252800,lB:1544486400,mB:1548720000,nB:1552953600,oB:1558396800,pB:1562630400,qB:1567468800,rB:1571788800,sB:1575331200,tB:1578355200,r:1581379200,uB:1583798400,vB:1586304000,wB:1588636800,xB:1591056000,yB:1593475200,P:1595894400,Q:1598313600,R:1600732800,\"7B\":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,s:1661212800,t:1663632000,u:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,D:1698105600,\"8B\":null,\"9B\":null,AC:null}},D:{A:{\"0\":0.187862,\"1\":0.169534,\"2\":0.522348,\"3\":0.361978,\"4\":1.46624,\"5\":9.96127,\"6\":9.54889,\"7\":0,\"8\":0,\"9\":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0,C:0,K:0,L:0,H:0,M:0,N:0,O:0,n:0,o:0,p:0,q:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0.004582,KB:0,LB:0,MB:0,NB:0.013746,OB:0,PB:0,QB:0.004582,RB:0,SB:0,TB:0,UB:0.009164,VB:0,WB:0.009164,XB:0.018328,YB:0.041238,ZB:0.009164,aB:0,bB:0,cB:0.009164,dB:0,eB:0.009164,fB:0.018328,gB:0.009164,hB:0.004582,\"5B\":0,iB:0.032074,\"6B\":0.004582,jB:0,kB:0.009164,lB:0,mB:0.013746,nB:0.02291,oB:0.009164,pB:0.032074,qB:0.064148,rB:0.16037,sB:0.02291,tB:0.032074,r:0.041238,uB:0.036656,vB:0.036656,wB:0.109968,xB:0.032074,yB:0.041238,P:0.169534,Q:0.087058,R:0.059566,S:0.073312,T:0.036656,U:0.082476,V:0.087058,W:0.100804,X:0.054984,Y:0.04582,Z:0.054984,a:0.082476,b:0.04582,c:0.142042,d:0.041238,e:0.013746,f:0.018328,g:0.02291,h:0.06873,i:0.036656,j:0.036656,k:0.04582,l:0.036656,m:0.233682,s:0.050402,t:0.036656,u:0.059566,v:0.13746,w:0.178698,x:1.69534,y:0.155788,z:0.265756,D:0.027492,\"8B\":0.013746,\"9B\":0,AC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"I\",\"7\",\"J\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"K\",\"L\",\"H\",\"M\",\"N\",\"O\",\"8\",\"n\",\"o\",\"p\",\"q\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"5B\",\"iB\",\"6B\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"r\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"D\",\"8B\",\"9B\",\"AC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1274745600,\"8\":1332892800,\"9\":1352246400,I:1264377600,J:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,H:1316131200,M:1319500800,N:1323734400,O:1328659200,n:1337040000,o:1340668800,p:1343692800,q:1348531200,AB:1357862400,BB:1361404800,CB:1364428800,DB:1369094400,EB:1374105600,FB:1376956800,GB:1384214400,HB:1389657600,IB:1392940800,JB:1397001600,KB:1400544000,LB:1405468800,MB:1409011200,NB:1412640000,OB:1416268800,PB:1421798400,QB:1425513600,RB:1429401600,SB:1432080000,TB:1437523200,UB:1441152000,VB:1444780800,WB:1449014400,XB:1453248000,YB:1456963200,ZB:1460592000,aB:1464134400,bB:1469059200,cB:1472601600,dB:1476230400,eB:1480550400,fB:1485302400,gB:1489017600,hB:1492560000,\"5B\":1496707200,iB:1500940800,\"6B\":1504569600,jB:1508198400,kB:1512518400,lB:1516752000,mB:1520294400,nB:1523923200,oB:1527552000,pB:1532390400,qB:1536019200,rB:1539648000,sB:1543968000,tB:1548720000,r:1552348800,uB:1555977600,vB:1559606400,wB:1564444800,xB:1568073600,yB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,s:1659398400,t:1661817600,u:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,D:1698710400,\"8B\":null,\"9B\":null,AC:null}},E:{A:{\"7\":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0,C:0.004582,K:0.02291,L:0.096222,H:0.018328,TC:0,BC:0,UC:0.004582,VC:0,WC:0,XC:0.164952,CC:0,zB:0.009164,\"0B\":0.027492,DC:0.128296,YC:0.233682,ZC:0.041238,EC:0.032074,FC:0.06873,\"1B\":0.109968,aC:0.536094,\"2B\":0.064148,GC:0.16037,HC:0.146624,IC:0.34365,JC:0.146624,KC:0.398634,bC:2.1902,\"3B\":0.613988,LC:0.041238,MC:0,cC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"BC\",\"I\",\"7\",\"UC\",\"J\",\"VC\",\"E\",\"WC\",\"F\",\"G\",\"XC\",\"A\",\"CC\",\"B\",\"zB\",\"C\",\"0B\",\"K\",\"DC\",\"L\",\"YC\",\"H\",\"ZC\",\"EC\",\"FC\",\"1B\",\"aC\",\"2B\",\"GC\",\"HC\",\"IC\",\"JC\",\"KC\",\"bC\",\"3B\",\"LC\",\"MC\",\"cC\",\"\"],E:\"Safari\",F:{\"7\":1275868800,TC:1205798400,BC:1226534400,I:1244419200,UC:1311120000,J:1343174400,VC:1382400000,E:1382400000,WC:1410998400,F:1413417600,G:1443657600,XC:1458518400,A:1474329600,CC:1490572800,B:1505779200,zB:1522281600,C:1537142400,\"0B\":1553472000,K:1568851200,DC:1585008000,L:1600214400,YC:1619395200,H:1632096000,ZC:1635292800,EC:1639353600,FC:1647216000,\"1B\":1652745600,aC:1658275200,\"2B\":1662940800,GC:1666569600,HC:1670889600,IC:1674432000,JC:1679875200,KC:1684368000,bC:1690156800,\"3B\":1695686400,LC:1698192000,MC:null,cC:null}},F:{A:{\"8\":0,\"9\":0,G:0,B:0,C:0,H:0,M:0,N:0,O:0,n:0,o:0,p:0,q:0,AB:0,BB:0,CB:0,DB:0.004582,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0.013746,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0.004582,eB:0.004582,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,r:0,uB:0,vB:0,wB:0,xB:0,yB:0,P:0,Q:0,R:0,\"7B\":0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.050402,f:0,g:0.09164,h:0,i:0.009164,j:0.009164,k:0.013746,l:1.61745,m:0.25201,dC:0,eC:0,fC:0,gC:0,zB:0,NC:0,hC:0,\"0B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"dC\",\"eC\",\"fC\",\"gC\",\"B\",\"zB\",\"NC\",\"hC\",\"C\",\"0B\",\"H\",\"M\",\"N\",\"O\",\"8\",\"n\",\"o\",\"p\",\"q\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"r\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"P\",\"Q\",\"R\",\"7B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"\",\"\",\"\"],E:\"Opera\",F:{\"8\":1390867200,\"9\":1409616000,G:1150761600,dC:1223424000,eC:1251763200,fC:1267488000,gC:1277942400,B:1292457600,zB:1302566400,NC:1309219200,hC:1323129600,C:1323129600,\"0B\":1352073600,H:1372723200,M:1377561600,N:1381104000,O:1386288000,n:1393891200,o:1399334400,p:1401753600,q:1405987200,AB:1413331200,BB:1417132800,CB:1422316800,DB:1425945600,EB:1430179200,FB:1433808000,GB:1438646400,HB:1442448000,IB:1445904000,JB:1449100800,KB:1454371200,LB:1457308800,MB:1462320000,NB:1465344000,OB:1470096000,PB:1474329600,QB:1477267200,RB:1481587200,SB:1486425600,TB:1490054400,UB:1494374400,VB:1498003200,WB:1502236800,XB:1506470400,YB:1510099200,ZB:1515024000,aB:1517961600,bB:1521676800,cB:1525910400,dB:1530144000,eB:1534982400,fB:1537833600,gB:1543363200,hB:1548201600,iB:1554768000,jB:1561593600,kB:1566259200,lB:1570406400,mB:1573689600,nB:1578441600,oB:1583971200,pB:1587513600,qB:1592956800,rB:1595894400,sB:1600128000,tB:1603238400,r:1613520000,uB:1612224000,vB:1616544000,wB:1619568000,xB:1623715200,yB:1627948800,P:1631577600,Q:1633392000,R:1635984000,\"7B\":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800},D:{G:\"o\",B:\"o\",C:\"o\",dC:\"o\",eC:\"o\",fC:\"o\",gC:\"o\",zB:\"o\",NC:\"o\",hC:\"o\",\"0B\":\"o\"}},G:{A:{F:0,BC:0,iC:0,OC:0.0027735,jC:0.00138675,kC:0.00416026,lC:0.00970726,mC:0.00138675,nC:0.00970726,oC:0.033282,pC:0.00138675,qC:0.0485363,rC:0.0457628,sC:0.016641,tC:0.0124808,uC:0.220494,vC:0.00693376,wC:0.0374423,xC:0.0138675,yC:0.0443761,zC:0.122034,\"0C\":0.196919,\"1C\":0.0776581,EC:0.0887521,FC:0.0984594,\"1B\":0.140062,\"2C\":0.96934,\"2B\":0.357782,GC:0.685055,HC:0.334207,IC:0.619878,JC:0.137288,KC:0.355009,\"3C\":6.64254,\"3B\":2.36719,LC:0.142835,MC:0.00416026},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BC\",\"iC\",\"OC\",\"jC\",\"kC\",\"lC\",\"F\",\"mC\",\"nC\",\"oC\",\"pC\",\"qC\",\"rC\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"EC\",\"FC\",\"1B\",\"2C\",\"2B\",\"GC\",\"HC\",\"IC\",\"JC\",\"KC\",\"3C\",\"3B\",\"LC\",\"MC\",\"\",\"\"],E:\"Safari on iOS\",F:{BC:1270252800,iC:1283904000,OC:1299628800,jC:1331078400,kC:1359331200,lC:1394409600,F:1410912000,mC:1413763200,nC:1442361600,oC:1458518400,pC:1473724800,qC:1490572800,rC:1505779200,sC:1522281600,tC:1537142400,uC:1553472000,vC:1568851200,wC:1572220800,xC:1580169600,yC:1585008000,zC:1600214400,\"0C\":1619395200,\"1C\":1632096000,EC:1639353600,FC:1647216000,\"1B\":1652659200,\"2C\":1658275200,\"2B\":1662940800,GC:1666569600,HC:1670889600,IC:1674432000,JC:1679875200,KC:1684368000,\"3C\":1690156800,\"3B\":1694995200,LC:1698192000,MC:null}},H:{A:{\"4C\":0.06},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4C\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{\"4C\":1426464000}},I:{A:{\"4B\":0,I:0.000123508,D:0.61445,\"5C\":0,\"6C\":0.000185261,\"7C\":0,\"8C\":0.000123508,OC:0.000432277,\"9C\":0,AD:0.00185261},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"5C\",\"6C\",\"7C\",\"4B\",\"I\",\"8C\",\"OC\",\"9C\",\"AD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{\"5C\":1256515200,\"6C\":1274313600,\"7C\":1291593600,\"4B\":1298332800,I:1318896000,\"8C\":1341792000,OC:1374624000,\"9C\":1386547200,AD:1401667200,D:1698710400}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,r:1.00715,zB:0,NC:0,\"0B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"zB\",\"NC\",\"C\",\"0B\",\"r\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,zB:1314835200,NC:1318291200,C:1330300800,\"0B\":1349740800,r:1673827200},D:{r:\"webkit\"}},L:{A:{D:35.8038},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1698710400}},M:{A:{D:0.276267},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1698105600}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"1B\":0.785465},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"1B\":1687132800},D:{\"1B\":\"webkit\"}},P:{A:{I:0.0977276,n:0.0542931,o:0.108586,p:1.60708,q:0.347476,BD:0,CD:0,DD:0.0325759,ED:0,FD:0,CC:0,GD:0.0108586,HD:0,ID:0.0108586,JD:0,KD:0,\"2B\":0.0217172,\"3B\":0.0325759,LD:0.0217172,MD:0.0434345},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"BD\",\"CD\",\"DD\",\"ED\",\"FD\",\"CC\",\"GD\",\"HD\",\"ID\",\"JD\",\"KD\",\"2B\",\"3B\",\"LD\",\"MD\",\"n\",\"o\",\"p\",\"q\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,BD:1481846400,CD:1509408000,DD:1528329600,ED:1546128000,FD:1554163200,CC:1567900800,GD:1582588800,HD:1593475200,ID:1605657600,JD:1618531200,KD:1629072000,\"2B\":1640736000,\"3B\":1651708800,LD:1659657600,MD:1667260800,n:1677369600,o:1684454400,p:1689292800,q:1697587200}},Q:{A:{DC:0.151676},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"DC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{DC:1663718400}},R:{A:{ND:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"ND\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{ND:1663027200}},S:{A:{OD:0.059587,PD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"OD\",\"PD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{OD:1527811200,PD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"5\",\"8\":\"19\",\"9\":\"24\",A:\"10\",B:\"11\",C:\"12\",D:\"119\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"20\",o:\"21\",p:\"22\",q:\"23\",r:\"73\",s:\"104\",t:\"105\",u:\"106\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"25\",BB:\"26\",CB:\"27\",DB:\"28\",EB:\"29\",FB:\"30\",GB:\"31\",HB:\"32\",IB:\"33\",JB:\"34\",KB:\"35\",LB:\"36\",MB:\"37\",NB:\"38\",OB:\"39\",PB:\"40\",QB:\"41\",RB:\"42\",SB:\"43\",TB:\"44\",UB:\"45\",VB:\"46\",WB:\"47\",XB:\"48\",YB:\"49\",ZB:\"50\",aB:\"51\",bB:\"52\",cB:\"53\",dB:\"54\",eB:\"55\",fB:\"56\",gB:\"57\",hB:\"58\",iB:\"60\",jB:\"62\",kB:\"63\",lB:\"64\",mB:\"65\",nB:\"66\",oB:\"67\",pB:\"68\",qB:\"69\",rB:\"70\",sB:\"71\",tB:\"72\",uB:\"74\",vB:\"75\",wB:\"76\",xB:\"77\",yB:\"78\",zB:\"11.1\",\"0B\":\"12.1\",\"1B\":\"15.5\",\"2B\":\"16.0\",\"3B\":\"17.0\",\"4B\":\"3\",\"5B\":\"59\",\"6B\":\"61\",\"7B\":\"82\",\"8B\":\"120\",\"9B\":\"121\",AC:\"122\",BC:\"3.2\",CC:\"10.1\",DC:\"13.1\",EC:\"15.2-15.3\",FC:\"15.4\",GC:\"16.1\",HC:\"16.2\",IC:\"16.3\",JC:\"16.4\",KC:\"16.5\",LC:\"17.1\",MC:\"17.2\",NC:\"11.5\",OC:\"4.2-4.3\",PC:\"5.5\",QC:\"2\",RC:\"3.5\",SC:\"3.6\",TC:\"3.1\",UC:\"5.1\",VC:\"6.1\",WC:\"7.1\",XC:\"9.1\",YC:\"14.1\",ZC:\"15.1\",aC:\"15.6\",bC:\"16.6\",cC:\"TP\",dC:\"9.5-9.6\",eC:\"10.0-10.1\",fC:\"10.5\",gC:\"10.6\",hC:\"11.6\",iC:\"4.0-4.1\",jC:\"5.0-5.1\",kC:\"6.0-6.1\",lC:\"7.0-7.1\",mC:\"8.1-8.4\",nC:\"9.0-9.2\",oC:\"9.3\",pC:\"10.0-10.2\",qC:\"10.3\",rC:\"11.0-11.2\",sC:\"11.3-11.4\",tC:\"12.0-12.1\",uC:\"12.2-12.5\",vC:\"13.0-13.1\",wC:\"13.2\",xC:\"13.3\",yC:\"13.4-13.7\",zC:\"14.0-14.4\",\"0C\":\"14.5-14.8\",\"1C\":\"15.0-15.1\",\"2C\":\"15.6-15.7\",\"3C\":\"16.6-16.7\",\"4C\":\"all\",\"5C\":\"2.1\",\"6C\":\"2.2\",\"7C\":\"2.3\",\"8C\":\"4.1\",\"9C\":\"4.4\",AD:\"4.4.3-4.4.4\",BD:\"5.0-5.4\",CD:\"6.2-6.4\",DD:\"7.2-7.4\",ED:\"8.2\",FD:\"9.2\",GD:\"11.1-11.2\",HD:\"12.0\",ID:\"13.0\",JD:\"14.0\",KD:\"15.0\",LD:\"18.0\",MD:\"19.0\",ND:\"13.18\",OD:\"2.5\",PD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"27.0\": \"118\",\n\t\"28.0\": \"120\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n */\n {\n regex: /Maci.+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":["exports","appId","_storagebuilder","default","_interopRequireDefault","obj","__esModule","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_defineProperty","value","ScopedStorage","scope","wrapped","persistent","instance","Constructor","TypeError","_classCallCheck","this","concat","GLOBAL_SCOPE_PERSISTENT","GLOBAL_SCOPE_VOLATILE","btoa","protoProps","setItem","scopeKey","getItem","removeItem","_this","keys","filter","startsWith","map","bind","prototype","_scopedstorage","StorageBuilder","_persist","arguments","undefined","persisted","clear","clearedOnLogout","window","localStorage","sessionStorage","isCallable","tryToString","$TypeError","module","argument","isObject","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","index","includes","indexOf","uncurryThis","IndexedObject","toObject","arraySpeciesCreate","push","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","that","specificCreate","result","self","boundFunction","create","forEach","some","every","find","findIndex","filterReject","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","isArray","isConstructor","$Array","Array","originalArray","C","arraySpeciesConstructor","uncurryThisRaw","toString","stringSlice","slice","it","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tag","error","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","source","exceptions","f","getOwnPropertyDescriptor","MATCH","regexp","error1","error2","DESCRIPTORS","createPropertyDescriptor","object","bitmap","toPropertyKey","propertyKey","makeBuiltIn","defineGlobalProperty","options","simple","name","global","unsafe","nonConfigurable","nonWritable","get","documentAll","document","all","IS_HTMLDDA","EXISTS","createElement","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","split","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","exec","aCallable","NATIVE_BIND","fn","apply","test","hasOwnProperty","call","Function","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","namespace","method","isNullOrUndefined","V","P","func","check","Math","globalThis","g","a","classof","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","type","$documentAll","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isRegExp","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","join","ceil","floor","trunc","x","n","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","getOwnPropertyNames","getOwnPropertySymbols","names","enumBugKeys","$propertyIsEnumerable","NASHORN_BUG","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","symbol","Symbol","toIntegerOrInfinity","max","min","integer","requireObjectCoercible","number","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","$","doesNotExceedSafeInteger","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","arg","k","len","E","A","$filter","$map","nativeKeys","notARegExp","correctIsRegExpLogic","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","searchString","search","user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","getBuilder","clearOnLogout","persist","supportedBrowsersRegExp","getUserAgentRegex","allowHigherVersions","browsers","browserslistConfig","browserslist","redirectPath","generateUrl","isBrowserOverridden","browserStorage","testSupportedBrowser","navigator","logger","debug","location","pathname","redirectUrl","href","origin","base64Param","Buffer","from","history","pushState","reload","BrowserslistError","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","jsReleases","agents","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","normalizeElectron","versionToUse","nameMapper","getMajor","parseInt","getMajorVersions","released","majorVersions","uniq","minimum","selected","unshift","filtered","fillUsage","generateFilter","sign","parseFloat","v","parseSimpleInt","compare","b","compareSemver","semverFilterLoose","operator","range","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","reduce","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","list","nVersions","jump","op_mob","isSupported","flags","withPartial","queries","QUERIES","node","not","query","select","j","parts","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","browser","customUsage","cacheKey","JSON","stringify","sort","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","place","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","last_major_versions","matches","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","supportType","features","checkDesktop","electron_range","fromToUse","toToUse","to","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","start","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","qs","predicate","substr","trim","block","J","F","G","B","PC","K","L","H","M","N","Q","R","S","T","U","W","X","Y","Z","c","d","e","h","l","m","s","t","u","w","y","z","D","QC","I","o","p","q","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","r","uB","vB","wB","xB","yB","AC","RC","SC","TC","BC","UC","VC","WC","XC","CC","zB","DC","YC","ZC","EC","FC","aC","GC","HC","IC","JC","KC","bC","LC","MC","cC","dC","eC","fC","gC","NC","hC","iC","OC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","agentsData","unpackBrowserVersions","versionsData","entry","prefix_exceptions","map2","key2","prefix","browserVersions","compatTransforms","_transform","transform","transformsWhitelist","transformToApply","extra","transformName","handler","getAST","getExtra","setExtra","_createClass","defineProperties","staticProps","RegExpTree","re","_ref","groups","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","group","groupNumber","_hasUFlag","shouldRun","ast","Char","kind","toValue","toSymbol","expressions","_groupNames","init","Group","nameRaw","Backreference","reference","referenceRaw","RegExp","namedCapturingGroups","xFlag","gen","generator","body","Alternative","Disjunction","left","right","expression","capturing","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","quantifier","Quantifier","greedy","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","size","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","Number","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","Map","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","shift","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","clone","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","parent","isNaN","codePoint","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","Infinity","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","remove","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","NaN","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","part","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","pop","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","_","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","pre","post","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","nodePath","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","dx","SemverPart","numbersToRanges","numbers","semverify","versionParts","versionPart","semverPart","semver","compareSemvers","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","compareMinor","comparePatch","compareArrays","copy","items","AlternativeNode","exps","SimpleCharNode","ClassRangeNode","CharacterClassNode","CapturingGroupNode","DisjunctionCapturingGroupNode","expr","exprs","disjunction","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","isCharNode","isDigitRangeNode","isExpressionNode","parseRegex","regex","classes","visitors","newVisitors","className","visitor","visitorPre","visitorPost","numberToDigits","num","rayRangeDigitPattern","digit","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","splitToDecadeRanges","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","middleSegment","ri","patterns","prevNode","merged","exp","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","getNumberPatternsCount","numbersCounter","containsNumberPattern","applyVersionsToRegex","finalVersions","maxRequiredPartsCount","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","createMapper","rangedSemverToRegex","numbersToReplace","replaceNumberPatterns","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","maxVersion","matchedVersions","Major","Minor","Patch","versionsListToRanges","applyVersionsToRegexes","targetRegexes","prevFamily","prevRegexIsGlobal","requestVersions","family","minVersion","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","getRegexesForBrowsers","merge","strVersion","mergeBrowserVersions","browserslistOptions","versionString","versionStringTo","partIndex","i1","rangeSemver","getBrowsersList","src","optimizeRegex","regexes"],"sourceRoot":""}
|