diff --git a/404.html b/404.html
index d49390b..1b0b528 100644
--- a/404.html
+++ b/404.html
@@ -1,4 +1,4 @@
-
"},this.getStyleTags=function(){return e.sealed?C(2):e._emitSheetCSS()},this.getStyleElement=function(){var a;if(e.sealed)return C(2);var n=((a={})[w]="",a["data-styled-version"]="5.3.6",a.dangerouslySetInnerHTML={__html:e.instance.toString()},a),d=M();return d&&(n.nonce=d),[t.createElement("style",l({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new W({isServer:!0}),this.sealed=!1}var a=e.prototype;return a.collectStyles=function(e){return this.sealed?C(2):t.createElement(ce,{sheet:this.instance},e)},a.interleaveWithNodeStream=function(e){return C(3)},e}(),ze=function(e){var a=t.forwardRef((function(a,n){var d=(0,t.useContext)(je),r=e.defaultProps,o=we(a,d,r);return t.createElement(e,l({},a,{theme:o,ref:n}))}));return R()(a,e),a.displayName="WithTheme("+b(e)+")",a},He=function(){return(0,t.useContext)(je)},Ue={StyleSheet:W,masterSheet:oe},qe=Be},98883:function(e){e.exports=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","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","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","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"])},60020:function(e,a,n){"use strict";const d=n(98883),t=n(68297);e.exports=function(e){if(d.has(e))return e;if(t.has(e))return t.get(e);throw new Error("Unknown property: ".concat(e))}},21663:function(e){e.exports=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]])},13314:function(e,a,n){"use strict";const d=n(21663);e.exports=function(e,a){const n=d.get(e);if(!n)throw new Error("Unknown property `".concat(e,"`."));const t=n.get(a);if(t)return t;throw new Error("Unknown value `".concat(a,"` for property `").concat(e,"`."))}},68297:function(e){e.exports=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]])},38531:function(e,a,n){var d={"./Binary_Property/ASCII.js":80055,"./Binary_Property/ASCII_Hex_Digit.js":81731,"./Binary_Property/Alphabetic.js":75244,"./Binary_Property/Any.js":25929,"./Binary_Property/Assigned.js":72573,"./Binary_Property/Bidi_Control.js":83029,"./Binary_Property/Bidi_Mirrored.js":50755,"./Binary_Property/Case_Ignorable.js":86317,"./Binary_Property/Cased.js":78087,"./Binary_Property/Changes_When_Casefolded.js":61587,"./Binary_Property/Changes_When_Casemapped.js":62518,"./Binary_Property/Changes_When_Lowercased.js":50140,"./Binary_Property/Changes_When_NFKC_Casefolded.js":97224,"./Binary_Property/Changes_When_Titlecased.js":40835,"./Binary_Property/Changes_When_Uppercased.js":95428,"./Binary_Property/Dash.js":78233,"./Binary_Property/Default_Ignorable_Code_Point.js":91357,"./Binary_Property/Deprecated.js":18391,"./Binary_Property/Diacritic.js":5198,"./Binary_Property/Emoji.js":42117,"./Binary_Property/Emoji_Component.js":97581,"./Binary_Property/Emoji_Modifier.js":39030,"./Binary_Property/Emoji_Modifier_Base.js":18618,"./Binary_Property/Emoji_Presentation.js":29702,"./Binary_Property/Extended_Pictographic.js":5667,"./Binary_Property/Extender.js":9002,"./Binary_Property/Grapheme_Base.js":96851,"./Binary_Property/Grapheme_Extend.js":71054,"./Binary_Property/Hex_Digit.js":80662,"./Binary_Property/IDS_Binary_Operator.js":66910,"./Binary_Property/IDS_Trinary_Operator.js":31548,"./Binary_Property/ID_Continue.js":97301,"./Binary_Property/ID_Start.js":47818,"./Binary_Property/Ideographic.js":82217,"./Binary_Property/Join_Control.js":15332,"./Binary_Property/Logical_Order_Exception.js":55780,"./Binary_Property/Lowercase.js":61091,"./Binary_Property/Math.js":7146,"./Binary_Property/Noncharacter_Code_Point.js":51752,"./Binary_Property/Pattern_Syntax.js":76596,"./Binary_Property/Pattern_White_Space.js":86436,"./Binary_Property/Quotation_Mark.js":29467,"./Binary_Property/Radical.js":68163,"./Binary_Property/Regional_Indicator.js":16412,"./Binary_Property/Sentence_Terminal.js":25496,"./Binary_Property/Soft_Dotted.js":83045,"./Binary_Property/Terminal_Punctuation.js":20991,"./Binary_Property/Unified_Ideograph.js":15154,"./Binary_Property/Uppercase.js":91909,"./Binary_Property/Variation_Selector.js":64590,"./Binary_Property/White_Space.js":42886,"./Binary_Property/XID_Continue.js":83067,"./Binary_Property/XID_Start.js":86524,"./General_Category/Cased_Letter.js":94195,"./General_Category/Close_Punctuation.js":42549,"./General_Category/Connector_Punctuation.js":72437,"./General_Category/Control.js":44467,"./General_Category/Currency_Symbol.js":75431,"./General_Category/Dash_Punctuation.js":86441,"./General_Category/Decimal_Number.js":57965,"./General_Category/Enclosing_Mark.js":89586,"./General_Category/Final_Punctuation.js":32965,"./General_Category/Format.js":32277,"./General_Category/Initial_Punctuation.js":5900,"./General_Category/Letter.js":63764,"./General_Category/Letter_Number.js":43043,"./General_Category/Line_Separator.js":19307,"./General_Category/Lowercase_Letter.js":45025,"./General_Category/Mark.js":76197,"./General_Category/Math_Symbol.js":21803,"./General_Category/Modifier_Letter.js":31022,"./General_Category/Modifier_Symbol.js":46858,"./General_Category/Nonspacing_Mark.js":85948,"./General_Category/Number.js":78861,"./General_Category/Open_Punctuation.js":38999,"./General_Category/Other.js":30567,"./General_Category/Other_Letter.js":52093,"./General_Category/Other_Number.js":80180,"./General_Category/Other_Punctuation.js":72919,"./General_Category/Other_Symbol.js":57481,"./General_Category/Paragraph_Separator.js":26400,"./General_Category/Private_Use.js":55205,"./General_Category/Punctuation.js":78350,"./General_Category/Separator.js":66827,"./General_Category/Space_Separator.js":29909,"./General_Category/Spacing_Mark.js":67089,"./General_Category/Surrogate.js":38703,"./General_Category/Symbol.js":34345,"./General_Category/Titlecase_Letter.js":87135,"./General_Category/Unassigned.js":48068,"./General_Category/Uppercase_Letter.js":54508,"./Property_of_Strings/Basic_Emoji.js":7134,"./Property_of_Strings/Emoji_Keycap_Sequence.js":1354,"./Property_of_Strings/RGI_Emoji.js":64708,"./Property_of_Strings/RGI_Emoji_Flag_Sequence.js":32530,"./Property_of_Strings/RGI_Emoji_Modifier_Sequence.js":76685,"./Property_of_Strings/RGI_Emoji_Tag_Sequence.js":80852,"./Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js":70523,"./Script/Adlam.js":67309,"./Script/Ahom.js":21824,"./Script/Anatolian_Hieroglyphs.js":44251,"./Script/Arabic.js":93703,"./Script/Armenian.js":52003,"./Script/Avestan.js":91194,"./Script/Balinese.js":97148,"./Script/Bamum.js":92508,"./Script/Bassa_Vah.js":87398,"./Script/Batak.js":70403,"./Script/Bengali.js":60285,"./Script/Bhaiksuki.js":10143,"./Script/Bopomofo.js":25500,"./Script/Brahmi.js":69672,"./Script/Braille.js":67008,"./Script/Buginese.js":32055,"./Script/Buhid.js":90141,"./Script/Canadian_Aboriginal.js":40912,"./Script/Carian.js":68653,"./Script/Caucasian_Albanian.js":47231,"./Script/Chakma.js":38234,"./Script/Cham.js":29076,"./Script/Cherokee.js":47242,"./Script/Chorasmian.js":91466,"./Script/Common.js":2325,"./Script/Coptic.js":4957,"./Script/Cuneiform.js":51215,"./Script/Cypriot.js":94221,"./Script/Cypro_Minoan.js":77004,"./Script/Cyrillic.js":49326,"./Script/Deseret.js":2436,"./Script/Devanagari.js":76224,"./Script/Dives_Akuru.js":28156,"./Script/Dogra.js":19019,"./Script/Duployan.js":11233,"./Script/Egyptian_Hieroglyphs.js":82904,"./Script/Elbasan.js":50651,"./Script/Elymaic.js":63404,"./Script/Ethiopic.js":42249,"./Script/Georgian.js":77113,"./Script/Glagolitic.js":84922,"./Script/Gothic.js":8047,"./Script/Grantha.js":31338,"./Script/Greek.js":74214,"./Script/Gujarati.js":51130,"./Script/Gunjala_Gondi.js":60046,"./Script/Gurmukhi.js":37307,"./Script/Han.js":77439,"./Script/Hangul.js":73296,"./Script/Hanifi_Rohingya.js":67439,"./Script/Hanunoo.js":71394,"./Script/Hatran.js":68092,"./Script/Hebrew.js":24189,"./Script/Hiragana.js":84371,"./Script/Imperial_Aramaic.js":10780,"./Script/Inherited.js":71122,"./Script/Inscriptional_Pahlavi.js":53431,"./Script/Inscriptional_Parthian.js":580,"./Script/Javanese.js":37174,"./Script/Kaithi.js":77983,"./Script/Kannada.js":29485,"./Script/Katakana.js":3962,"./Script/Kawi.js":99140,"./Script/Kayah_Li.js":88425,"./Script/Kharoshthi.js":11648,"./Script/Khitan_Small_Script.js":67968,"./Script/Khmer.js":21205,"./Script/Khojki.js":5794,"./Script/Khudawadi.js":95492,"./Script/Lao.js":29088,"./Script/Latin.js":59992,"./Script/Lepcha.js":66891,"./Script/Limbu.js":33324,"./Script/Linear_A.js":74596,"./Script/Linear_B.js":1620,"./Script/Lisu.js":42747,"./Script/Lycian.js":1657,"./Script/Lydian.js":79038,"./Script/Mahajani.js":58990,"./Script/Makasar.js":31935,"./Script/Malayalam.js":15666,"./Script/Mandaic.js":81458,"./Script/Manichaean.js":49002,"./Script/Marchen.js":38394,"./Script/Masaram_Gondi.js":13910,"./Script/Medefaidrin.js":91850,"./Script/Meetei_Mayek.js":43034,"./Script/Mende_Kikakui.js":51271,"./Script/Meroitic_Cursive.js":70039,"./Script/Meroitic_Hieroglyphs.js":28978,"./Script/Miao.js":41801,"./Script/Modi.js":28146,"./Script/Mongolian.js":34848,"./Script/Mro.js":75485,"./Script/Multani.js":45988,"./Script/Myanmar.js":76042,"./Script/Nabataean.js":81263,"./Script/Nag_Mundari.js":17318,"./Script/Nandinagari.js":16087,"./Script/New_Tai_Lue.js":93938,"./Script/Newa.js":12645,"./Script/Nko.js":41687,"./Script/Nushu.js":19566,"./Script/Nyiakeng_Puachue_Hmong.js":57324,"./Script/Ogham.js":28054,"./Script/Ol_Chiki.js":50326,"./Script/Old_Hungarian.js":89704,"./Script/Old_Italic.js":81737,"./Script/Old_North_Arabian.js":60623,"./Script/Old_Permic.js":84547,"./Script/Old_Persian.js":4062,"./Script/Old_Sogdian.js":91435,"./Script/Old_South_Arabian.js":17744,"./Script/Old_Turkic.js":85004,"./Script/Old_Uyghur.js":56299,"./Script/Oriya.js":61702,"./Script/Osage.js":66820,"./Script/Osmanya.js":68741,"./Script/Pahawh_Hmong.js":43421,"./Script/Palmyrene.js":71540,"./Script/Pau_Cin_Hau.js":1646,"./Script/Phags_Pa.js":79532,"./Script/Phoenician.js":17297,"./Script/Psalter_Pahlavi.js":59563,"./Script/Rejang.js":15670,"./Script/Runic.js":15180,"./Script/Samaritan.js":85123,"./Script/Saurashtra.js":40061,"./Script/Sharada.js":72487,"./Script/Shavian.js":59504,"./Script/Siddham.js":565,"./Script/SignWriting.js":19877,"./Script/Sinhala.js":66662,"./Script/Sogdian.js":11761,"./Script/Sora_Sompeng.js":35055,"./Script/Soyombo.js":62187,"./Script/Sundanese.js":78461,"./Script/Syloti_Nagri.js":74405,"./Script/Syriac.js":15815,"./Script/Tagalog.js":2333,"./Script/Tagbanwa.js":38249,"./Script/Tai_Le.js":29852,"./Script/Tai_Tham.js":59997,"./Script/Tai_Viet.js":92465,"./Script/Takri.js":95234,"./Script/Tamil.js":59527,"./Script/Tangsa.js":946,"./Script/Tangut.js":86011,"./Script/Telugu.js":4866,"./Script/Thaana.js":36876,"./Script/Thai.js":71517,"./Script/Tibetan.js":49897,"./Script/Tifinagh.js":71384,"./Script/Tirhuta.js":51862,"./Script/Toto.js":79830,"./Script/Ugaritic.js":92019,"./Script/Vai.js":57677,"./Script/Vithkuqi.js":10301,"./Script/Wancho.js":12679,"./Script/Warang_Citi.js":79917,"./Script/Yezidi.js":33172,"./Script/Yi.js":94344,"./Script/Zanabazar_Square.js":90753,"./Script_Extensions/Adlam.js":38937,"./Script_Extensions/Ahom.js":9811,"./Script_Extensions/Anatolian_Hieroglyphs.js":11878,"./Script_Extensions/Arabic.js":98988,"./Script_Extensions/Armenian.js":50944,"./Script_Extensions/Avestan.js":96478,"./Script_Extensions/Balinese.js":28898,"./Script_Extensions/Bamum.js":42809,"./Script_Extensions/Bassa_Vah.js":36382,"./Script_Extensions/Batak.js":18210,"./Script_Extensions/Bengali.js":39762,"./Script_Extensions/Bhaiksuki.js":69666,"./Script_Extensions/Bopomofo.js":87754,"./Script_Extensions/Brahmi.js":94830,"./Script_Extensions/Braille.js":65528,"./Script_Extensions/Buginese.js":3789,"./Script_Extensions/Buhid.js":53126,"./Script_Extensions/Canadian_Aboriginal.js":61228,"./Script_Extensions/Carian.js":26604,"./Script_Extensions/Caucasian_Albanian.js":68874,"./Script_Extensions/Chakma.js":57717,"./Script_Extensions/Cham.js":50272,"./Script_Extensions/Cherokee.js":48334,"./Script_Extensions/Chorasmian.js":61166,"./Script_Extensions/Common.js":73219,"./Script_Extensions/Coptic.js":33538,"./Script_Extensions/Cuneiform.js":59678,"./Script_Extensions/Cypriot.js":45995,"./Script_Extensions/Cypro_Minoan.js":19536,"./Script_Extensions/Cyrillic.js":18638,"./Script_Extensions/Deseret.js":77756,"./Script_Extensions/Devanagari.js":85640,"./Script_Extensions/Dives_Akuru.js":97606,"./Script_Extensions/Dogra.js":80650,"./Script_Extensions/Duployan.js":4539,"./Script_Extensions/Egyptian_Hieroglyphs.js":41585,"./Script_Extensions/Elbasan.js":40751,"./Script_Extensions/Elymaic.js":8933,"./Script_Extensions/Ethiopic.js":56370,"./Script_Extensions/Georgian.js":60656,"./Script_Extensions/Glagolitic.js":22125,"./Script_Extensions/Gothic.js":56298,"./Script_Extensions/Grantha.js":86631,"./Script_Extensions/Greek.js":80161,"./Script_Extensions/Gujarati.js":41962,"./Script_Extensions/Gunjala_Gondi.js":46189,"./Script_Extensions/Gurmukhi.js":8194,"./Script_Extensions/Han.js":5545,"./Script_Extensions/Hangul.js":94337,"./Script_Extensions/Hanifi_Rohingya.js":25890,"./Script_Extensions/Hanunoo.js":54191,"./Script_Extensions/Hatran.js":62640,"./Script_Extensions/Hebrew.js":26210,"./Script_Extensions/Hiragana.js":4645,"./Script_Extensions/Imperial_Aramaic.js":47790,"./Script_Extensions/Inherited.js":65719,"./Script_Extensions/Inscriptional_Pahlavi.js":58626,"./Script_Extensions/Inscriptional_Parthian.js":50167,"./Script_Extensions/Javanese.js":29743,"./Script_Extensions/Kaithi.js":11958,"./Script_Extensions/Kannada.js":26161,"./Script_Extensions/Katakana.js":58831,"./Script_Extensions/Kawi.js":93386,"./Script_Extensions/Kayah_Li.js":65916,"./Script_Extensions/Kharoshthi.js":97319,"./Script_Extensions/Khitan_Small_Script.js":82273,"./Script_Extensions/Khmer.js":21654,"./Script_Extensions/Khojki.js":60840,"./Script_Extensions/Khudawadi.js":84937,"./Script_Extensions/Lao.js":3895,"./Script_Extensions/Latin.js":34462,"./Script_Extensions/Lepcha.js":55753,"./Script_Extensions/Limbu.js":82970,"./Script_Extensions/Linear_A.js":61456,"./Script_Extensions/Linear_B.js":7475,"./Script_Extensions/Lisu.js":82841,"./Script_Extensions/Lycian.js":25245,"./Script_Extensions/Lydian.js":40610,"./Script_Extensions/Mahajani.js":71461,"./Script_Extensions/Makasar.js":90995,"./Script_Extensions/Malayalam.js":4201,"./Script_Extensions/Mandaic.js":85976,"./Script_Extensions/Manichaean.js":61361,"./Script_Extensions/Marchen.js":51089,"./Script_Extensions/Masaram_Gondi.js":75850,"./Script_Extensions/Medefaidrin.js":35394,"./Script_Extensions/Meetei_Mayek.js":65222,"./Script_Extensions/Mende_Kikakui.js":56734,"./Script_Extensions/Meroitic_Cursive.js":48438,"./Script_Extensions/Meroitic_Hieroglyphs.js":63315,"./Script_Extensions/Miao.js":89426,"./Script_Extensions/Modi.js":56126,"./Script_Extensions/Mongolian.js":48441,"./Script_Extensions/Mro.js":96237,"./Script_Extensions/Multani.js":12152,"./Script_Extensions/Myanmar.js":88384,"./Script_Extensions/Nabataean.js":22445,"./Script_Extensions/Nag_Mundari.js":48651,"./Script_Extensions/Nandinagari.js":54947,"./Script_Extensions/New_Tai_Lue.js":25650,"./Script_Extensions/Newa.js":997,"./Script_Extensions/Nko.js":35334,"./Script_Extensions/Nushu.js":38408,"./Script_Extensions/Nyiakeng_Puachue_Hmong.js":53615,"./Script_Extensions/Ogham.js":72435,"./Script_Extensions/Ol_Chiki.js":6286,"./Script_Extensions/Old_Hungarian.js":10512,"./Script_Extensions/Old_Italic.js":7259,"./Script_Extensions/Old_North_Arabian.js":79715,"./Script_Extensions/Old_Permic.js":84513,"./Script_Extensions/Old_Persian.js":29058,"./Script_Extensions/Old_Sogdian.js":22883,"./Script_Extensions/Old_South_Arabian.js":25750,"./Script_Extensions/Old_Turkic.js":38028,"./Script_Extensions/Old_Uyghur.js":82038,"./Script_Extensions/Oriya.js":93543,"./Script_Extensions/Osage.js":55599,"./Script_Extensions/Osmanya.js":6499,"./Script_Extensions/Pahawh_Hmong.js":87093,"./Script_Extensions/Palmyrene.js":33203,"./Script_Extensions/Pau_Cin_Hau.js":32175,"./Script_Extensions/Phags_Pa.js":80475,"./Script_Extensions/Phoenician.js":88683,"./Script_Extensions/Psalter_Pahlavi.js":13132,"./Script_Extensions/Rejang.js":10643,"./Script_Extensions/Runic.js":92370,"./Script_Extensions/Samaritan.js":62803,"./Script_Extensions/Saurashtra.js":69504,"./Script_Extensions/Sharada.js":57957,"./Script_Extensions/Shavian.js":15581,"./Script_Extensions/Siddham.js":45898,"./Script_Extensions/SignWriting.js":73338,"./Script_Extensions/Sinhala.js":54400,"./Script_Extensions/Sogdian.js":69554,"./Script_Extensions/Sora_Sompeng.js":82168,"./Script_Extensions/Soyombo.js":55339,"./Script_Extensions/Sundanese.js":17361,"./Script_Extensions/Syloti_Nagri.js":7453,"./Script_Extensions/Syriac.js":49190,"./Script_Extensions/Tagalog.js":78050,"./Script_Extensions/Tagbanwa.js":6896,"./Script_Extensions/Tai_Le.js":30486,"./Script_Extensions/Tai_Tham.js":43272,"./Script_Extensions/Tai_Viet.js":2338,"./Script_Extensions/Takri.js":15222,"./Script_Extensions/Tamil.js":25234,"./Script_Extensions/Tangsa.js":14113,"./Script_Extensions/Tangut.js":12606,"./Script_Extensions/Telugu.js":60209,"./Script_Extensions/Thaana.js":34190,"./Script_Extensions/Thai.js":24815,"./Script_Extensions/Tibetan.js":65333,"./Script_Extensions/Tifinagh.js":98578,"./Script_Extensions/Tirhuta.js":25740,"./Script_Extensions/Toto.js":20190,"./Script_Extensions/Ugaritic.js":41418,"./Script_Extensions/Vai.js":95619,"./Script_Extensions/Vithkuqi.js":4862,"./Script_Extensions/Wancho.js":80134,"./Script_Extensions/Warang_Citi.js":61158,"./Script_Extensions/Yezidi.js":25,"./Script_Extensions/Yi.js":47685,"./Script_Extensions/Zanabazar_Square.js":92290,"./index.js":31714,"./unicode-version.js":35362};function t(e){var a=r(e);return n(a)}function r(e){if(!n.o(d,e)){var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}return d[e]}t.keys=function(){return Object.keys(d)},t.resolve=r,e.exports=t,t.id=38531},64956:function(e,a,n){var d=n(97826);e.exports=d},73645:function(e,a,n){n(48410);var d=n(79775);e.exports=d.Object.assign},8924:function(e,a,n){e.exports=n(16980)},16980:function(e,a,n){var d=n(64956);e.exports=d},45089:function(e,a,n){var d=n(90930),t=n(9268),r=TypeError;e.exports=function(e){if(d(e))return e;throw r(t(e)+" is not a function")}},41449:function(e,a,n){var d=n(41956),t=n(9268),r=TypeError;e.exports=function(e){if(d(e))return e;throw r(t(e)+" is not a constructor")}},78669:function(e,a,n){var d=n(50211),t=n(44710),r=n(77826).f,o=d("unscopables"),i=Array.prototype;null==i[o]&&r(i,o,{configurable:!0,value:t(null)}),e.exports=function(e){i[o][e]=!0}},56112:function(e,a,n){var d=n(28759),t=String,r=TypeError;e.exports=function(e){if(d(e))return e;throw r(t(e)+" is not an object")}},56198:function(e,a,n){var d=n(64088),t=n(7740),r=n(82871),o=function(e){return function(a,n,o){var i,g=d(a),s=r(g),c=t(o,s);if(e&&n!=n){for(;s>c;)if((i=g[c++])!=i)return!0}else for(;s>c;c++)if((e||c in g)&&g[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},52306:function(e,a,n){var d=n(74130),t=d({}.toString),r=d("".slice);e.exports=function(e){return r(t(e),8,-1)}},90375:function(e,a,n){var d=n(12371),t=n(90930),r=n(52306),o=n(50211)("toStringTag"),i=Object,g="Arguments"==r(function(){return arguments}());e.exports=d?r:function(e){var a,n,d;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,a){try{return e[a]}catch(n){}}(a=i(e),o))?n:g?r(a):"Object"==(d=r(a))&&t(a.callee)?"Arguments":d}},48474:function(e,a,n){var d=n(49606),t=n(46095),r=n(94399),o=n(77826);e.exports=function(e,a,n){for(var i=t(a),g=o.f,s=r.f,c=0;c0&&d[0]<4?1:+(d[0]+d[1])),!t&&o&&(!(d=o.match(/Edge\/(\d+)/))||d[1]>=74)&&(d=o.match(/Chrome\/(\d+)/))&&(t=+d[1]),e.exports=t},58684:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},51695:function(e,a,n){var d=n(22086),t=n(94399).f,r=n(72585),o=n(1343),i=n(79444),g=n(48474),s=n(67189);e.exports=function(e,a){var n,c,u,R,l,p=e.target,f=e.global,h=e.stat;if(n=f?d:h?d[p]||i(p,{}):(d[p]||{}).prototype)for(c in a){if(R=a[c],u=e.dontCallGetSet?(l=t(n,c))&&l.value:n[c],!s(f?c:p+(h?".":"#")+c,e.forced)&&void 0!==u){if(typeof R==typeof u)continue;g(R,u)}(e.sham||u&&u.sham)&&r(R,"sham",!0),o(n,c,R,e)}}},63677:function(e){e.exports=function(e){try{return!!e()}catch(a){return!0}}},86059:function(e,a,n){var d=n(63677);e.exports=!d((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},59413:function(e,a,n){var d=n(86059),t=Function.prototype.call;e.exports=d?t.bind(t):function(){return t.apply(t,arguments)}},94398:function(e,a,n){var d=n(25283),t=n(49606),r=Function.prototype,o=d&&Object.getOwnPropertyDescriptor,i=t(r,"name"),g=i&&"something"===function(){}.name,s=i&&(!d||d&&o(r,"name").configurable);e.exports={EXISTS:i,PROPER:g,CONFIGURABLE:s}},74130:function(e,a,n){var d=n(86059),t=Function.prototype,r=t.call,o=d&&t.bind.bind(r,r);e.exports=function(e){return d?o(e):function(){return r.apply(e,arguments)}}},78240:function(e,a,n){var d=n(52306),t=n(74130);e.exports=function(e){if("Function"===d(e))return t(e)}},10563:function(e,a,n){var d=n(22086),t=n(90930),r=function(e){return t(e)?e:void 0};e.exports=function(e,a){return arguments.length<2?r(d[e]):d[e]&&d[e][a]}},2964:function(e,a,n){var d=n(45089),t=n(71858);e.exports=function(e,a){var n=e[a];return t(n)?void 0:d(n)}},18509:function(e,a,n){var d=n(78240),t=n(3060),r=Math.floor,o=d("".charAt),i=d("".replace),g=d("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,a,n,d,u,R){var l=n+e.length,p=d.length,f=c;return void 0!==u&&(u=t(u),f=s),i(R,f,(function(t,i){var s;switch(o(i,0)){case"$":return"$";case"&":return e;case"`":return g(a,0,n);case"'":return g(a,l);case"<":s=u[g(i,1,-1)];break;default:var c=+i;if(0===c)return t;if(c>p){var R=r(c/10);return 0===R?t:R<=p?void 0===d[R-1]?o(i,1):d[R-1]+o(i,1):t}s=d[c-1]}return void 0===s?"":s}))}},22086:function(e,a,n){var d=function(e){return e&&e.Math==Math&&e};e.exports=d("object"==typeof globalThis&&globalThis)||d("object"==typeof window&&window)||d("object"==typeof self&&self)||d("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},49606:function(e,a,n){var d=n(78240),t=n(3060),r=d({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,a){return r(t(e),a)}},7153:function(e){e.exports={}},25963:function(e,a,n){var d=n(10563);e.exports=d("document","documentElement")},26761:function(e,a,n){var d=n(25283),t=n(63677),r=n(20821);e.exports=!d&&!t((function(){return 7!=Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a}))},95974:function(e,a,n){var d=n(78240),t=n(63677),r=n(52306),o=Object,i=d("".split);e.exports=t((function(){return!o("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?i(e,""):o(e)}:o},39277:function(e,a,n){var d=n(78240),t=n(90930),r=n(74489),o=d(Function.toString);t(r.inspectSource)||(r.inspectSource=function(e){return o(e)}),e.exports=r.inspectSource},83278:function(e,a,n){var d,t,r,o=n(40640),i=n(22086),g=n(28759),s=n(72585),c=n(49606),u=n(74489),R=n(88944),l=n(7153),p="Object already initialized",f=i.TypeError,h=i.WeakMap;if(o||u.state){var m=u.state||(u.state=new h);m.get=m.get,m.has=m.has,m.set=m.set,d=function(e,a){if(m.has(e))throw f(p);return a.facade=e,m.set(e,a),a},t=function(e){return m.get(e)||{}},r=function(e){return m.has(e)}}else{var y=R("state");l[y]=!0,d=function(e,a){if(c(e,y))throw f(p);return a.facade=e,s(e,y,a),a},t=function(e){return c(e,y)?e[y]:{}},r=function(e){return c(e,y)}}e.exports={set:d,get:t,has:r,enforce:function(e){return r(e)?t(e):d(e,{})},getterFor:function(e){return function(a){var n;if(!g(a)||(n=t(a)).type!==e)throw f("Incompatible receiver, "+e+" required");return n}}}},90930:function(e,a,n){var d=n(27886),t=d.all;e.exports=d.IS_HTMLDDA?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},41956:function(e,a,n){var d=n(78240),t=n(63677),r=n(90930),o=n(90375),i=n(10563),g=n(39277),s=function(){},c=[],u=i("Reflect","construct"),R=/^\s*(?:class|function)\b/,l=d(R.exec),p=!R.exec(s),f=function(e){if(!r(e))return!1;try{return u(s,c,e),!0}catch(a){return!1}},h=function(e){if(!r(e))return!1;switch(o(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!l(R,g(e))}catch(a){return!0}};h.sham=!0,e.exports=!u||t((function(){var e;return f(f.call)||!f(Object)||!f((function(){e=!0}))||e}))?h:f},67189:function(e,a,n){var d=n(63677),t=n(90930),r=/#|\.prototype\./,o=function(e,a){var n=g[i(e)];return n==c||n!=s&&(t(a)?d(a):!!a)},i=o.normalize=function(e){return String(e).replace(r,".").toLowerCase()},g=o.data={},s=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},71858:function(e){e.exports=function(e){return null==e}},28759:function(e,a,n){var d=n(90930),t=n(27886),r=t.all;e.exports=t.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:d(e)||e===r}:function(e){return"object"==typeof e?null!==e:d(e)}},43296:function(e){e.exports=!1},67994:function(e,a,n){var d=n(28759),t=n(52306),r=n(50211)("match");e.exports=function(e){var a;return d(e)&&(void 0!==(a=e[r])?!!a:"RegExp"==t(e))}},92071:function(e,a,n){var d=n(10563),t=n(90930),r=n(95516),o=n(91876),i=Object;e.exports=o?function(e){return"symbol"==typeof e}:function(e){var a=d("Symbol");return t(a)&&r(a.prototype,i(e))}},82871:function(e,a,n){var d=n(24005);e.exports=function(e){return d(e.length)}},83712:function(e,a,n){var d=n(63677),t=n(90930),r=n(49606),o=n(25283),i=n(94398).CONFIGURABLE,g=n(39277),s=n(83278),c=s.enforce,u=s.get,R=Object.defineProperty,l=o&&!d((function(){return 8!==R((function(){}),"length",{value:8}).length})),p=String(String).split("String"),f=e.exports=function(e,a,n){"Symbol("===String(a).slice(0,7)&&(a="["+String(a).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(a="get "+a),n&&n.setter&&(a="set "+a),(!r(e,"name")||i&&e.name!==a)&&(o?R(e,"name",{value:a,configurable:!0}):e.name=a),l&&n&&r(n,"arity")&&e.length!==n.arity&&R(e,"length",{value:n.arity});try{n&&r(n,"constructor")&&n.constructor?o&&R(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(t){}var d=c(e);return r(d,"source")||(d.source=p.join("string"==typeof a?a:"")),e};Function.prototype.toString=f((function(){return t(this)&&u(this).source||g(this)}),"toString")},55681:function(e){var a=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var d=+e;return(d>0?n:a)(d)}},98722:function(e,a,n){"use strict";var d=n(45089),t=TypeError,r=function(e){var a,n;this.promise=new e((function(e,d){if(void 0!==a||void 0!==n)throw t("Bad Promise constructor");a=e,n=d})),this.resolve=d(a),this.reject=d(n)};e.exports.f=function(e){return new r(e)}},88675:function(e,a,n){"use strict";var d=n(25283),t=n(78240),r=n(59413),o=n(63677),i=n(68779),g=n(66952),s=n(7446),c=n(3060),u=n(95974),R=Object.assign,l=Object.defineProperty,p=t([].concat);e.exports=!R||o((function(){if(d&&1!==R({b:1},R(l({},"a",{enumerable:!0,get:function(){l(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},a={},n=Symbol(),t="abcdefghijklmnopqrst";return e[n]=7,t.split("").forEach((function(e){a[e]=e})),7!=R({},e)[n]||i(R({},a)).join("")!=t}))?function(e,a){for(var n=c(e),t=arguments.length,o=1,R=g.f,l=s.f;t>o;)for(var f,h=u(arguments[o++]),m=R?p(i(h),R(h)):i(h),y=m.length,b=0;y>b;)f=m[b++],d&&!r(l,h,f)||(n[f]=h[f]);return n}:R},44710:function(e,a,n){var d,t=n(56112),r=n(77711),o=n(58684),i=n(7153),g=n(25963),s=n(20821),c=n(88944),u=c("IE_PROTO"),R=function(){},l=function(e){return"\");\n}\n\nfunction createBox() {\n return [\"&&{\", system, \"}\"];\n}\n\ncreateBox.meta = system.meta;\n\nconst getMediaWidth = getBreakpointBound => value => props => {\n const v = getBreakpointBound(getScreens(props), value);\n return v === null ? \"0\" : v || value;\n};\n\nconst mediaGetters = {\n \"min-width\": getMediaWidth(getBreakpointMin),\n \"max-width\": getMediaWidth(getBreakpointMax)\n};\nconst PROP_CHAR = \"[-\\\\w]\";\nconst VALUE_CHAR = \"(?:\\\\\\\\[\\\\s\\\\S]|[^\\\\\\\\;{}])\";\nconst PROP_PATT = \"(\".concat(PROP_CHAR, \"+)(\\\\s*:\\\\s*)(?=\\\\S)(\").concat(VALUE_CHAR, \"*?)(\\\\s*!important)?(\\\\s*;)\");\nconst MEDIA_CHAR = \"[^{]\";\nconst MEDIA_PATT = \"(@media\\\\b\\\\s*)(?=\\\\S)(\".concat(MEDIA_CHAR, \"+?)(\\\\s*\\\\{)\");\nconst MATCH_REGEXP = new RegExp(\"(?:\".concat(PROP_PATT, \"|\").concat(MEDIA_PATT, \")\"), \"g\");\nconst QUERY_REGEXP = new RegExp(\"(\\\\(\\\\s*)(\".concat(PROP_CHAR, \"+)(\\\\s*:\\\\s*)([^\\\\)]*?)(\\\\s*\\\\))\"), \"g\");\n\nconst mediaTransform = rawValue => {\n let matches;\n let lastIndex = 0;\n const values = [];\n\n while (matches = QUERY_REGEXP.exec(rawValue)) {\n const [, open, prop, colon, value, close] = matches;\n const getter = mediaGetters[prop];\n\n if (getter) {\n values.push(rawValue.slice(lastIndex, matches.index));\n values.push(p => \"\".concat(open).concat(prop).concat(colon).concat(getter(value)(p)).concat(close));\n lastIndex = matches.index + matches[0].length;\n }\n }\n\n values.push(rawValue.slice(lastIndex, rawValue.length));\n return values;\n};\n\nconst createTransform = generator => rawValue => {\n if (typeof rawValue !== \"string\") return rawValue;\n let matches;\n let lastIndex = 0;\n const values = [];\n\n while (matches = MATCH_REGEXP.exec(rawValue)) {\n const [, prop, colon, value, imp, semi, media, query, brace] = matches;\n\n if (media) {\n values.push(rawValue.slice(lastIndex, matches.index));\n values.push(media);\n mediaTransform(query).forEach(v => values.push(v));\n values.push(brace);\n lastIndex = matches.index + matches[0].length;\n } else {\n const getter = generator.meta.cssGetters[prop];\n\n if (getter) {\n values.push(rawValue.slice(lastIndex, matches.index));\n values.push(p => \"\".concat(prop).concat(colon).concat(getter(value)(p)).concat(imp || \"\").concat(semi));\n lastIndex = matches.index + matches[0].length;\n }\n }\n }\n\n values.push(rawValue.slice(lastIndex, rawValue.length));\n return values;\n};\n\nconst createUseGetter = (getter, useTheme) => (value, defaultValue) => {\n const theme = useTheme();\n return useMemo(() => getter(value, defaultValue)({\n theme\n }), [value, defaultValue, theme]);\n};\n\nexport { ColorModeContext, createBox, createColorModeProvider, createColorStyles, createTransform, createUseGetter, getColorModeInitScriptElement, getColorModeInitScriptTag, useColorMode, useColorModeState, useColorModeTheme, useThemeBreakpoint, useThemeDown, useThemeScreens, useThemeUp, useViewportWidth };","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import _taggedTemplateLiteral from \"C:/Users/IvanGarcia/workspace/zenwave/ZenWave360.github.io/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\";\n\nvar _templateObject, _templateObject2, _templateObject3;\n\nimport styled$1, { createGlobalStyle as createGlobalStyle$1, ThemeContext, ThemeProvider, css as css$1 } from 'styled-components';\nexport { ServerStyleSheet, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, isStyledComponent, keyframes, withTheme } from 'styled-components';\nimport { createColorStyles, createColorModeProvider, createUseGetter, useThemeScreens, useThemeBreakpoint, useThemeUp, useThemeDown, createTransform } from '@xstyled/core';\nexport { getColorModeInitScriptElement, getColorModeInitScriptTag, useColorMode, useViewportWidth } from '@xstyled/core';\nimport { useContext } from 'react';\nimport { th, getPreflightStyles, system as system$1 } from '@xstyled/system';\nexport * from '@xstyled/system';\nimport { flattenStrings, string } from '@xstyled/util';\nconst ColorModeStyle = createGlobalStyle$1(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\", \"\"])), p => createColorStyles(p.theme, {\n targetSelector: p.targetSelector\n}));\nconst ColorModeProvider = createColorModeProvider({\n ThemeContext,\n ThemeProvider,\n ColorModeStyle\n});\n\nconst useTheme = () => {\n return useContext(ThemeContext);\n};\n\nconst useTh = createUseGetter(th, useTheme);\nconst useAngle = createUseGetter(th.angle, useTheme);\nconst useAnimation = createUseGetter(th.animation, useTheme);\nconst useBorder = createUseGetter(th.border, useTheme);\nconst useBorderColor = createUseGetter(th.borderColor, useTheme);\nconst useBorderStyle = createUseGetter(th.borderStyle, useTheme);\nconst useBorderWidth = createUseGetter(th.borderWidth, useTheme);\nconst useColor = createUseGetter(th.color, useTheme);\nconst useDuration = createUseGetter(th.duration, useTheme);\nconst useFont = createUseGetter(th.font, useTheme);\nconst useFontSize = createUseGetter(th.fontSize, useTheme);\nconst useFontWeight = createUseGetter(th.fontWeight, useTheme);\nconst useInset = createUseGetter(th.inset, useTheme);\nconst useLetterSpacing = createUseGetter(th.letterSpacing, useTheme);\nconst useLineHeight = createUseGetter(th.lineHeight, useTheme);\nconst usePercent = createUseGetter(th.percent, useTheme);\nconst usePx = createUseGetter(th.px, useTheme);\nconst useRadius = createUseGetter(th.radius, useTheme);\nconst useRingWidth = createUseGetter(th.ringWidth, useTheme);\nconst useShadow = createUseGetter(th.shadow, useTheme);\nconst useSize = createUseGetter(th.size, useTheme);\nconst useSpace = createUseGetter(th.space, useTheme);\nconst useTimingFunction = createUseGetter(th.timingFunction, useTheme);\nconst useTransform = createUseGetter(th.transform, useTheme);\nconst useTransition = createUseGetter(th.transition, useTheme);\nconst useTransitionProperty = createUseGetter(th.transitionProperty, useTheme);\nconst useZIndex = createUseGetter(th.zIndex, useTheme);\n\nconst useScreens = () => {\n return useThemeScreens(useTheme());\n};\n\nconst useBreakpoint = () => {\n return useThemeBreakpoint(useTheme());\n};\n\nconst useUp = key => {\n return useThemeUp(useTheme(), key);\n};\n\nconst useDown = key => {\n return useThemeDown(useTheme(), key);\n};\n\nconst Preflight = createGlobalStyle$1(_ref => {\n let {\n theme\n } = _ref;\n return getPreflightStyles(theme);\n});\n\nconst createCssFunction = generator => {\n const transform = createTransform(generator);\n return function () {\n const scCssArgs = css$1(...arguments);\n const flattenedArgs = flattenStrings(scCssArgs);\n return flattenedArgs.map(transform);\n };\n};\n\nconst scStyled = typeof styled$1 === \"function\" ? styled$1 : styled$1.default;\n\nconst getCreateStyle = (baseCreateStyle, css, generator) => {\n const createStyle = function () {\n return baseCreateStyle(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\", \"\", \"\"])), css(...arguments), generator);\n };\n\n createStyle.attrs = attrs => getCreateStyle(baseCreateStyle.attrs(attrs), css, generator);\n\n createStyle.withConfig = config => getCreateStyle(baseCreateStyle.withConfig(config), css, generator);\n\n return createStyle;\n};\n\nconst createShouldForwardProp = generator => {\n const propSet = new Set(generator.meta.props);\n return (prop, defaultValidatorFn, elementToBeCreated) => {\n if (string(prop) && propSet.has(prop)) {\n return false;\n }\n\n if (typeof elementToBeCreated === \"string\") {\n return defaultValidatorFn(prop);\n }\n\n return true;\n };\n};\n\nconst createBaseStyled = (css, generator) => {\n const config = generator ? {\n shouldForwardProp: createShouldForwardProp(generator)\n } : {};\n return component => {\n const baseStyled = scStyled(component);\n return getCreateStyle(config ? baseStyled.withConfig(config) : baseStyled, css, generator);\n };\n};\n\nconst createStyled = generator => {\n const css = createCssFunction(generator);\n const styled = createBaseStyled(css);\n const xstyled = createBaseStyled(css, generator);\n styled.box = xstyled(\"div\");\n Object.keys(scStyled).forEach(key => {\n styled[key] = styled(key);\n styled[\"\".concat(key, \"Box\")] = xstyled(key);\n });\n return styled;\n};\n\nconst createX = generator => {\n const xstyled = createBaseStyled(createCssFunction(generator), generator);\n const x = {};\n Object.keys(scStyled).forEach(tag => {\n x[tag] = xstyled(tag)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\"])));\n });\n return x;\n};\n\nconst createCreateGlobalStyle = generator => {\n const css = createCssFunction(generator);\n return function () {\n return createGlobalStyle$1([css(...arguments)]);\n };\n};\n\nconst createCss = generator => {\n return {\n css: createCssFunction(generator),\n x: createX(generator),\n styled: createStyled(generator),\n createGlobalStyle: createCreateGlobalStyle(generator)\n };\n};\n\nconst {\n css,\n styled,\n x,\n createGlobalStyle\n} = createCss(system$1);\nexport { ColorModeProvider, Preflight, createCss, createGlobalStyle, css, styled as default, styled, useAngle, useAnimation, useBorder, useBorderColor, useBorderStyle, useBorderWidth, useBreakpoint, useColor, useDown, useDuration, useFont, useFontSize, useFontWeight, useInset, useLetterSpacing, useLineHeight, usePercent, usePx, useRadius, useRingWidth, useScreens, useShadow, useSize, useSpace, useTh, useTheme, useTimingFunction, useTransform, useTransition, useTransitionProperty, useUp, useZIndex, x };","import { num, string, getThemeValue, negative, warn, merge, assign, func, is, obj, cascade } from '@xstyled/util';\nvar __pow = Math.pow;\n\nconst round = value => Math.round(value * __pow(10, 4)) / __pow(10, 4);\n\nconst unit = unit2 => value => num(value) && value !== 0 ? \"\".concat(value).concat(unit2) : value;\n\nconst ms = unit(\"ms\");\nconst px$1 = unit(\"px\");\nconst deg = unit(\"deg\");\n\nconst pxToRem = function (value) {\n let {\n rootFontSize = 16\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return round(value / rootFontSize);\n};\n\nconst remPx = (value, options) => {\n const num2 = Number(value);\n if (Number.isNaN(num2) || num2 === 0) return value;\n return \"\".concat(pxToRem(num2, options), \"rem\");\n};\n\nconst rpx = (value, options) => {\n if (!string(value) || value.length < 4) return value;\n const unit2 = value.slice(-3);\n if (unit2 !== \"rpx\") return value;\n const n = Number(value.slice(0, value.length - 3));\n if (n === 0) return 0;\n return \"\".concat(pxToRem(n, options), \"rem\");\n};\n\nconst percent = n => num(n) && n !== 0 && n >= -1 && n <= 1 ? \"\".concat(round(n * 100), \"%\") : n;\n\nconst transformNegative = (_, _ref) => {\n let {\n rawValue,\n variants,\n props\n } = _ref;\n\n if (string(rawValue)) {\n const neg = rawValue.startsWith(\"-\");\n const abs = neg ? rawValue.substr(1) : rawValue;\n const varVal = getThemeValue(props, abs, variants);\n const value = string(varVal) || num(varVal) ? varVal : abs;\n return neg ? \"-\".concat(value) : value;\n }\n\n if (num(rawValue)) {\n const neg = negative(rawValue);\n const abs = Math.abs(rawValue);\n const varVal = variants ? variants[abs] : void 0;\n if (string(varVal)) return neg ? \"-\".concat(varVal) : varVal;\n const value = num(varVal) ? varVal : abs;\n return neg ? value * -1 : value;\n }\n\n return void 0;\n};\n\nconst mediaMinWidth = value => value ? \"@media (min-width: \".concat(value, \")\") : null;\n\nconst mediaMaxWidth = value => value ? \"@media (max-width: \".concat(value, \")\") : null;\n\nconst mediaBetweenWidth = (min, max) => min && max ? \"@media (min-width: \".concat(min, \") and (max-width: \").concat(max, \")\") : null;\n\nconst getBreakpointMin = (screens, key) => {\n const value = screens[key];\n return value === 0 ? null : px$1(value);\n};\n\nconst getBreakpointMax = (screens, key) => {\n const value = screens[key];\n return value === 0 ? null : px$1(value - 0.02);\n};\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$6.call(b, prop)) __defNormalProp$6(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$6) for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop)) __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\n\nconst getScreens = props => {\n return props.theme && props.theme.screens ? props.theme.screens : {};\n};\n\nconst getStates = props => {\n return props.theme && props.theme.states ? props.theme.states : {};\n};\n\nconst getVariants = props => {\n const screens = getScreens(props);\n const states = getStates(props);\n const medias = {};\n\n for (const value in screens) {\n medias[value] = mediaMinWidth(getBreakpointMin(screens, value));\n }\n\n const variants = __spreadValues$6(__spreadValues$6({}, medias), states);\n\n for (const [value, selector] of Object.entries(variants)) {\n if (selector && selector.startsWith(\"@\")) {\n delete variants[value];\n variants[value] = selector;\n }\n }\n\n return variants;\n};\n\nconst getCachedVariants = (props, cache) => {\n if (cache.has(\"_variants\")) return cache.get(\"_variants\");\n const states = getVariants(props);\n cache.set(\"_variants\", states);\n return states;\n};\n\nconst cacheSupported = typeof Map !== \"undefined\" && typeof WeakMap !== \"undefined\";\nconst caches = cacheSupported ? new WeakMap() : null;\n\nconst getThemeCache = theme => {\n if (caches === null) return null;\n if (caches.has(theme)) return caches.get(theme) || null;\n const cache = {};\n caches.set(theme, cache);\n return cache;\n};\n\nconst noopCache = {\n has: () => false,\n set: () => void 0,\n get: () => void 0\n};\n\nconst getCache = (theme, namespace) => {\n if (!theme) return noopCache;\n const cache = getThemeCache(theme);\n if (!cache || !theme) return noopCache;\n cache[namespace] = cache[namespace] || new Map();\n return cache[namespace];\n};\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$5 = (obj2, key, value) => key in obj2 ? __defProp$5(obj2, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj2[key] = value;\n\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$5.call(b, prop)) __defNormalProp$5(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$5) for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop)) __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\n\nlet themeGetterId = 0;\nconst SPLITTERS = {\n shorthand: [/\\s+/, \" \"],\n multiple: [/\\s*,\\s*/, \",\"]\n};\n\nconst splitValue = (splitter, transform) => value => value.split(splitter[0]).map(transform).join(splitter[1]);\n\nconst themeGetter = _ref2 => {\n let {\n name,\n transform: defaultTransform,\n key,\n compose: compose2,\n shorthand,\n multiple\n } = _ref2;\n const id = themeGetterId++;\n\n const getter = (value, defaultValue) => props => {\n let res = value;\n\n if (!string(value) && !num(value) && value !== true) {\n return res;\n }\n\n const cacheKey = \"\".concat(typeof value, \"-\").concat(value, \"-\").concat(defaultValue);\n const cache = getCache(props.theme, \"__themeGetter\".concat(id));\n if (cache.has(cacheKey)) return cache.get(cacheKey);\n\n const getValue = value2 => {\n const localDefaultValue = is(defaultValue) ? defaultValue : value2;\n let res2 = value2;\n const variants = is(key) ? getThemeValue(props, key) : null;\n\n if (is(variants)) {\n const path = value2 === true ? \"default\" : string(value2) || num(value2) ? value2 : null;\n\n if (is(path)) {\n const fromTheme = getThemeValue(props, path, variants);\n res2 = Array.isArray(fromTheme) ? fromTheme.join(\",\") : fromTheme;\n }\n }\n\n let rawValue = value2;\n\n if (!is(res2)) {\n rawValue = localDefaultValue;\n res2 = localDefaultValue;\n }\n\n const transform = (name && props.theme && props.theme.transformers ? props.theme.transformers[name] : null) || defaultTransform;\n\n if (transform) {\n res2 = transform(res2, {\n rawValue,\n variants,\n props\n });\n }\n\n return compose2 ? compose2(res2)(props) : res2;\n };\n\n if ((shorthand || multiple) && string(value)) {\n let transform = getValue;\n if (shorthand) transform = splitValue(SPLITTERS.shorthand, transform);\n if (multiple) transform = splitValue(SPLITTERS.multiple, transform);\n res = transform(value);\n } else {\n res = getValue(value);\n }\n\n cache.set(cacheKey, res);\n return res;\n };\n\n getter.meta = {\n name,\n transform: defaultTransform\n };\n return getter;\n};\n\nconst createStyleGenerator = _ref3 => {\n let {\n getStyle,\n props,\n cssGetters = {},\n generators\n } = _ref3;\n const generator = getStyle;\n generator.meta = {\n props,\n cssGetters,\n getStyle: generator,\n generators\n };\n\n generator.apply = values => _ref4 => {\n let {\n theme\n } = _ref4;\n return generator(__spreadValues$5({\n theme\n }, values));\n };\n\n return generator;\n};\n\nconst reduceVariants = (props, values, getStyle) => {\n const cache = getCache(props.theme, \"__variants\");\n const variants = getCachedVariants(props, cache);\n let styles = {};\n\n for (const value in values) {\n const style2 = getStyle(values[value]);\n if (style2 === null) continue;\n const state = value in variants ? variants[value] : value;\n if (state === void 0) continue;\n\n if (state === null) {\n styles = merge(styles, style2);\n } else {\n styles[state] = styles[state] ? assign(styles[state], style2) : style2;\n }\n }\n\n return styles;\n};\n\nconst getStyleFactory = (prop, mixin, themeGet) => {\n return props => {\n const fromValue = value2 => {\n if (!is(value2)) return null;\n if (obj(value2)) return reduceVariants(props, value2, fromValue);\n return cascade(mixin(themeGet ? themeGet(value2)(props) : value2), props);\n };\n\n const value = props[prop];\n if (!is(value)) return null;\n const cache = getCache(props.theme, prop);\n if (cache.has(value)) return cache.get(value);\n const style2 = fromValue(props[prop]);\n cache.set(value, style2);\n return style2;\n };\n};\n\nconst indexGeneratorsByProp = generators => {\n const index = {};\n\n for (let i = 0; i < generators.length; i++) {\n const style2 = generators[i];\n\n if (style2 && style2.meta) {\n for (let j = 0; j < style2.meta.props.length; j++) {\n const prop = style2.meta.props[j];\n index[prop] = style2;\n }\n }\n }\n\n return index;\n};\n\nconst sortStyles = (styles, variants) => {\n for (const key in variants) {\n const variant = variants[key];\n const style2 = styles[variant];\n if (!style2) continue;\n delete styles[variant];\n styles[variant] = style2;\n }\n\n return styles;\n};\n\nfunction compose() {\n let flatGenerators = [];\n\n for (var _len = arguments.length, generators = new Array(_len), _key = 0; _key < _len; _key++) {\n generators[_key] = arguments[_key];\n }\n\n generators.forEach(gen => {\n warn(Boolean(gen), \"Undefined generator in \\\"compose\\\" method\");\n if (!gen) return;\n\n if (gen.meta.generators) {\n flatGenerators = [...flatGenerators, ...gen.meta.generators];\n } else {\n flatGenerators.push(gen);\n }\n });\n const generatorsByProp = indexGeneratorsByProp(flatGenerators);\n\n const getStyle = function (props2) {\n let sort = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const styles = {};\n let merged;\n\n for (const key in props2) {\n const generator = generatorsByProp[key];\n\n if (generator) {\n const style2 = generator.meta.getStyle(props2, false);\n merge(styles, style2);\n merged = true;\n }\n }\n\n if (!merged || !sort) return styles;\n const medias = getCachedVariants(props2, getCache(props2.theme, \"__states\"));\n return sortStyles(styles, medias);\n };\n\n const props = [];\n const cssGetters = {};\n\n for (let i = 0; i < flatGenerators.length; i++) {\n const generator = flatGenerators[i];\n props.push(...generator.meta.props);\n Object.assign(cssGetters, generator.meta.cssGetters);\n }\n\n return createStyleGenerator({\n getStyle,\n props,\n cssGetters,\n generators\n });\n}\n\nconst getMixinFromCSSProperties = properties => value => {\n if (string(properties)) return {\n [properties]: value\n };\n const style2 = {};\n\n for (const key in properties) {\n style2[properties[key]] = value;\n }\n\n return style2;\n};\n\nconst getMixinFromCSSOption = css => {\n if (func(css)) return css;\n return getMixinFromCSSProperties(css);\n};\n\nconst dasherize = key => key.replace(/[A-Z]/g, \"-$&\").toLowerCase();\n\nconst style = _ref5 => {\n let {\n prop,\n css,\n themeGet,\n key,\n transform,\n cssProps: cssPropsOption\n } = _ref5;\n const getter = themeGet || (key || transform ? themeGetter({\n key,\n transform\n }) : void 0);\n const cssProps = cssPropsOption || (string(css) ? [css] : Array.isArray(css) ? css : string(prop) ? [prop] : Array.isArray(prop) ? prop : []);\n\n if (Array.isArray(prop)) {\n const mixin2 = css ? getMixinFromCSSOption(css) : css;\n const generators2 = prop.map(prop2 => style({\n prop: prop2,\n css: mixin2,\n cssProps,\n themeGet: getter\n }));\n return compose(...generators2);\n }\n\n const props = [prop];\n const mixin = getMixinFromCSSOption(css || props);\n const generators = [];\n const getStyle = getStyleFactory(prop, mixin, getter);\n const cssGetters = getter ? cssProps.reduce((getters, cssProp) => {\n getters[dasherize(cssProp)] = getter;\n return getters;\n }, {}) : {};\n const generator = createStyleGenerator({\n getStyle,\n props,\n cssGetters\n });\n generators.push(generator);\n return compose(...generators);\n};\n\nconst getPx = themeGetter({\n name: \"px\",\n transform: (value, _ref6) => {\n let {\n props\n } = _ref6;\n\n var _a, _b, _c;\n\n const rootFontSize = (_c = (_b = (_a = props == null ? void 0 : props.theme) == null ? void 0 : _a.settings) == null ? void 0 : _b.rootFontSize) != null ? _c : void 0;\n const num = Number(value);\n return px$1(rpx(Number.isNaN(num) ? value : num, {\n rootFontSize\n }));\n }\n});\nconst getDuration = themeGetter({\n name: \"duration\",\n key: \"durations\",\n transform: value => {\n const num = Number(value);\n return ms(Number.isNaN(num) ? value : num);\n }\n});\nconst getAngle = themeGetter({\n name: \"angle\",\n transform: value => {\n const num = Number(value);\n return deg(Number.isNaN(num) ? value : num);\n }\n});\nconst getPercent = themeGetter({\n name: \"percent\",\n compose: getPx,\n transform: percent\n});\nconst getTransition = themeGetter({\n name: \"transition\",\n key: \"transitions\"\n});\nconst getTransitionProperty = themeGetter({\n name: \"transitionProperty\",\n key: \"transitionProperties\"\n});\nconst getTimingFunction = themeGetter({\n name: \"timingFunction\",\n key: \"timingFunctions\"\n});\nconst transition = style({\n prop: \"transition\",\n themeGet: getTransition\n});\nconst transitionProperty = style({\n prop: \"transitionProperty\",\n themeGet: getTransitionProperty\n});\nconst transitionDuration = style({\n prop: \"transitionDuration\",\n themeGet: getDuration\n});\nconst transitionTimingFunction = style({\n prop: \"transitionTimingFunction\",\n themeGet: getTimingFunction\n});\nconst transitionDelay = style({\n prop: \"transitionDelay\",\n themeGet: getDuration\n});\nconst transitions$1 = compose(transition, transitionProperty, transitionDuration, transitionTimingFunction, transitionDelay);\nconst getAnimation = themeGetter({\n name: \"animation\",\n key: \"animations\"\n});\nconst animation = style({\n prop: \"animation\",\n themeGet: getAnimation\n});\nconst animationDuration = style({\n prop: \"animationDuration\",\n themeGet: getDuration\n});\nconst animationTimingFunction = style({\n prop: \"animationTimingFunction\",\n themeGet: getTimingFunction\n});\nconst animations = compose(animation, animationDuration, animationTimingFunction);\nconst getColor = themeGetter({\n name: \"color\",\n key: \"colors\"\n});\nconst gradientBackgrounds = {\n \"gradient-to-t\": \"linear-gradient(to top, var(--x-gradient-stops))\",\n \"gradient-to-tr\": \"linear-gradient(to top right, var(--x-gradient-stops))\",\n \"gradient-to-r\": \"linear-gradient(to right, var(--x-gradient-stops))\",\n \"gradient-to-br\": \"linear-gradient(to bottom right, var(--x-gradient-stops))\",\n \"gradient-to-b\": \"linear-gradient(to bottom, var(--x-gradient-stops))\",\n \"gradient-to-bl\": \"linear-gradient(to bottom left, var(--x-gradient-stops))\",\n \"gradient-to-l\": \"linear-gradient(to left, var(--x-gradient-stops))\",\n \"gradient-to-tl\": \"linear-gradient(to top left, var(--x-gradient-stops))\"\n};\nconst background = style({\n prop: \"background\",\n css: value => ({\n background: gradientBackgrounds[value] || value\n })\n});\nconst backgroundColor = style({\n prop: [\"backgroundColor\", \"bg\"],\n css: \"backgroundColor\",\n themeGet: getColor\n});\nconst backgroundImage = style({\n prop: \"backgroundImage\",\n css: value => ({\n backgroundImage: gradientBackgrounds[value] || value\n })\n});\nconst backgroundSize = style({\n prop: \"backgroundSize\"\n});\nconst backgroundPosition = style({\n prop: \"backgroundPosition\"\n});\nconst backgroundRepeat = style({\n prop: \"backgroundRepeat\"\n});\nconst backgroundAttachment = style({\n prop: \"backgroundAttachment\"\n});\nconst backgroundClip = style({\n prop: \"backgroundClip\",\n css: [\"backgroundClip\", \"-webkitBackgroundClip\"]\n});\nconst gradientFrom = style({\n prop: \"gradientFrom\",\n themeGet: getColor,\n css: value => {\n return {\n \"--x-gradient-from\": value,\n \"--x-gradient-stops\": \"var(--x-gradient-from), var(--x-gradient-to, transparent)\"\n };\n }\n});\nconst gradientVia = style({\n prop: \"gradientVia\",\n themeGet: getColor,\n css: value => ({\n \"--x-gradient-stops\": \"var(--x-gradient-from), \".concat(value, \", var(--x-gradient-to, transparent)\")\n })\n});\nconst gradientTo = style({\n prop: \"gradientTo\",\n themeGet: getColor,\n css: \"--x-gradient-to\"\n});\nconst backgrounds = compose(background, backgroundColor, backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat, backgroundAttachment, backgroundClip, gradientFrom, gradientVia, gradientTo);\nconst getBorder = themeGetter({\n name: \"border\",\n key: \"borders\",\n transform: value => {\n const num = Number(value);\n return num > 0 ? \"\".concat(px$1(num), \" solid\") : value;\n }\n});\nconst getBorderWidth = themeGetter({\n name: \"borderWidth\",\n key: \"borderWidths\",\n compose: getPx,\n shorthand: true\n});\nconst getBorderColor = themeGetter({\n name: \"borderColor\",\n compose: getColor,\n shorthand: true\n});\nconst getBorderStyle = themeGetter({\n name: \"borderStyle\",\n key: \"borderStyles\"\n});\nconst border = style({\n prop: \"border\",\n themeGet: getBorder\n});\nconst borderTop = style({\n prop: \"borderTop\",\n themeGet: getBorder\n});\nconst borderRight = style({\n prop: \"borderRight\",\n themeGet: getBorder\n});\nconst borderBottom = style({\n prop: \"borderBottom\",\n themeGet: getBorder\n});\nconst borderLeft = style({\n prop: \"borderLeft\",\n themeGet: getBorder\n});\nconst borderColor = style({\n prop: \"borderColor\",\n themeGet: getBorderColor\n});\nconst borderTopColor = style({\n prop: \"borderTopColor\",\n themeGet: getColor\n});\nconst borderRightColor = style({\n prop: \"borderRightColor\",\n themeGet: getColor\n});\nconst borderBottomColor = style({\n prop: \"borderBottomColor\",\n themeGet: getColor\n});\nconst borderLeftColor = style({\n prop: \"borderLeftColor\",\n themeGet: getColor\n});\nconst borderWidth = style({\n prop: \"borderWidth\",\n themeGet: getBorderWidth\n});\nconst borderTopWidth = style({\n prop: \"borderTopWidth\",\n themeGet: getBorderWidth\n});\nconst borderRightWidth = style({\n prop: \"borderRightWidth\",\n themeGet: getBorderWidth\n});\nconst borderBottomWidth = style({\n prop: \"borderBottomWidth\",\n themeGet: getBorderWidth\n});\nconst borderLeftWidth = style({\n prop: \"borderLeftWidth\",\n themeGet: getBorderWidth\n});\nconst borderStyle = style({\n prop: \"borderStyle\",\n themeGet: getBorderStyle,\n cssProps: [\"borderStyle\", \"borderTopStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderLeftStyle\"]\n});\nconst borderTopStyle = style({\n prop: \"borderTopStyle\",\n themeGet: getBorderStyle\n});\nconst borderRightStyle = style({\n prop: \"borderRightStyle\",\n themeGet: getBorderStyle\n});\nconst borderBottomStyle = style({\n prop: \"borderBottomStyle\",\n themeGet: getBorderStyle\n});\nconst borderLeftStyle = style({\n prop: \"borderLeftStyle\",\n themeGet: getBorderStyle\n});\nconst outline = style({\n prop: \"outline\",\n themeGet: getBorder\n});\nconst outlineColor = style({\n prop: \"outlineColor\",\n themeGet: getColor\n});\nconst outlineWidth = style({\n prop: \"outlineWidth\",\n themeGet: getBorderWidth\n});\nconst outlineStyle = style({\n prop: \"outlineStyle\",\n themeGet: getBorderStyle\n});\nconst outlineOffset = style({\n prop: \"outlineOffset\",\n themeGet: getBorderWidth\n});\nconst getRadius = themeGetter({\n name: \"radius\",\n key: \"radii\",\n compose: getPx,\n shorthand: true\n});\nconst borderRadius = style({\n prop: \"borderRadius\",\n themeGet: getRadius,\n cssProps: [\"borderRadius\", \"borderTopLeftRadius\", \"borderTopRightRadius\", \"borderBottomRightRadius\", \"borderBottomLeftRadius\"]\n});\nconst divideSelector = \"& > :not([hidden]) ~ :not([hidden])\";\nconst divideY = style({\n prop: \"divideY\",\n themeGet: getBorderWidth,\n css: value => {\n const v = value === true ? 1 : value;\n return {\n [divideSelector]: {\n \"--x-divide-y-reverse\": 0,\n borderTopWidth: \"calc(\".concat(v, \" * calc(1 - var(--x-divide-y-reverse)))\"),\n borderBottomWidth: \"calc(\".concat(v, \" * var(--x-divide-y-reverse))\")\n }\n };\n }\n});\nconst divideX = style({\n prop: \"divideX\",\n themeGet: getBorderWidth,\n css: value => {\n const v = value === true ? 1 : value;\n return {\n [divideSelector]: {\n \"--x-divide-x-reverse\": 0,\n borderRightWidth: \"calc(\".concat(v, \" * var(--x-divide-x-reverse))\"),\n borderLeftWidth: \"calc(\".concat(v, \" * calc(1 - var(--x-divide-x-reverse)))\")\n }\n };\n }\n});\nconst divideXReverse = style({\n prop: \"divideXReverse\",\n css: () => ({\n [divideSelector]: {\n \"--x-divide-x-reverse\": \"1\"\n }\n })\n});\nconst divideYReverse = style({\n prop: \"divideYReverse\",\n css: () => ({\n [divideSelector]: {\n \"--x-divide-y-reverse\": \"1\"\n }\n })\n});\nconst divideColor = style({\n prop: \"divideColor\",\n themeGet: getColor,\n css: value => ({\n [divideSelector]: {\n borderColor: value\n }\n })\n});\nconst divideStyle = style({\n prop: \"divideStyle\",\n themeGet: getBorderStyle,\n css: value => ({\n [divideSelector]: {\n borderStyle: value\n }\n })\n});\nconst getRingWidth = themeGetter({\n name: \"ringWidth\",\n key: \"ringWidths\",\n compose: getPx\n});\nconst ring = style({\n prop: \"ring\",\n themeGet: getRingWidth,\n css: value => ({\n \"--x-ring-shadow\": \"var(--x-ring-inset, /*!*/ /*!*/) 0 0 0 \".concat(value, \" var(--x-ring-color)\"),\n boxShadow: \"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow, 0 0 #0000)\"\n })\n});\nconst ringInset = style({\n prop: \"ringInset\",\n css: () => ({\n \"--x-ring-inset\": \"inset\"\n })\n});\nconst ringColor = style({\n prop: \"ringColor\",\n themeGet: getColor,\n css: value => ({\n \"--x-ring-color\": value\n })\n});\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderWidth, borderTopWidth, borderRightWidth, borderBottomWidth, borderLeftWidth, borderStyle, borderTopStyle, borderRightStyle, borderBottomStyle, borderLeftStyle, borderRadius, outline, outlineColor, outlineWidth, outlineStyle, outlineOffset, divideX, divideY, divideXReverse, divideYReverse, divideColor, divideStyle, ring, ringInset, ringColor);\nconst getShadow = themeGetter({\n name: \"shadow\",\n key: \"shadows\",\n multiple: true\n});\nconst opacity = style({\n prop: \"opacity\"\n});\nconst boxShadow = style({\n prop: \"boxShadow\",\n themeGet: getShadow,\n css: value => ({\n \"--x-shadow\": value,\n boxShadow: \"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow)\"\n })\n});\nconst textShadow = style({\n prop: \"textShadow\",\n themeGet: getShadow\n});\nconst effects = compose(opacity, boxShadow, textShadow);\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$4 = (obj2, key, value) => key in obj2 ? __defProp$4(obj2, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj2[key] = value;\n\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$4.call(b, prop)) __defNormalProp$4(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$4) for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop)) __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\n\nconst row = style({\n prop: \"row\",\n css: () => ({\n boxSizing: \"border-box\",\n flexGrow: 1,\n flexWrap: \"wrap\",\n display: \"flex\"\n })\n});\n\nconst getColStyle = (props, size) => {\n if (!is(size)) return null;\n\n if (size === true) {\n return {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\"\n };\n }\n\n if (size === \"auto\") {\n return {\n flex: \"0 0 auto\",\n maxWidth: \"none\",\n width: \"auto\"\n };\n }\n\n const sizeWidth = getPercent(size)(props);\n return {\n flex: \"0 0 \".concat(sizeWidth),\n maxWidth: sizeWidth\n };\n};\n\nconst col = createStyleGenerator({\n getStyle: props => {\n const value = props.col;\n const common = {\n boxSizing: \"border-box\",\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\"\n };\n\n if (obj(value)) {\n const breakpointsStyle = reduceVariants(props, value, v => getColStyle(props, v));\n return __spreadValues$4(__spreadValues$4({}, common), breakpointsStyle);\n }\n\n return __spreadValues$4(__spreadValues$4({}, common), getColStyle(props, value));\n },\n props: [\"col\"]\n});\nconst flexboxGrids = compose(row, col);\nvar __defProp$3 = Object.defineProperty;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$3 = (obj2, key, value) => key in obj2 ? __defProp$3(obj2, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj2[key] = value;\n\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$3.call(b, prop)) __defNormalProp$3(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$3) for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop)) __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\n\nconst display = style({\n prop: \"display\"\n});\nconst float = style({\n prop: \"float\"\n});\nconst boxSizing = style({\n prop: \"boxSizing\"\n});\nconst container = createStyleGenerator({\n getStyle: props => {\n if (!props.container) return null;\n const breakpoints = getScreens(props);\n let styles = reduceVariants(props, breakpoints, v => v !== 0 ? {\n maxWidth: v\n } : {});\n\n if (obj(props.container)) {\n styles = reduceVariants(props, props.container, () => styles);\n }\n\n return __spreadValues$3({\n width: \"100%\"\n }, styles);\n },\n props: [\"container\"]\n});\nconst overflow = style({\n prop: \"overflow\"\n});\nconst overflowX = style({\n prop: \"overflowX\"\n});\nconst overflowY = style({\n prop: \"overflowY\"\n});\nconst getZIndex = themeGetter({\n name: \"zIndex\",\n key: \"zIndices\"\n});\nconst zIndex = style({\n prop: \"zIndex\",\n themeGet: getZIndex\n});\nconst position = style({\n prop: \"position\"\n});\nconst getInset = themeGetter({\n name: \"inset\",\n key: \"inset\",\n compose: getPx,\n transform: transformNegative\n});\nconst top = style({\n prop: \"top\",\n themeGet: getInset\n});\nconst right = style({\n prop: \"right\",\n themeGet: getInset\n});\nconst bottom = style({\n prop: \"bottom\",\n themeGet: getInset\n});\nconst left = style({\n prop: \"left\",\n themeGet: getInset\n});\nconst visibility = style({\n prop: \"visibility\"\n});\nconst overscrollBehavior = style({\n prop: \"overscrollBehavior\"\n});\nconst objectFit = style({\n prop: \"objectFit\"\n});\nconst layout = compose(boxSizing, display, float, container, overflow, overflowX, overflowY, position, zIndex, top, right, bottom, left, visibility, overscrollBehavior, objectFit);\nconst alignItems = style({\n prop: \"alignItems\"\n});\nconst alignContent = style({\n prop: \"alignContent\"\n});\nconst justifyContent = style({\n prop: \"justifyContent\"\n});\nconst justifyItems = style({\n prop: \"justifyItems\"\n});\nconst flexWrap = style({\n prop: \"flexWrap\"\n});\nconst flexGrow = style({\n prop: \"flexGrow\"\n});\nconst flexShrink = style({\n prop: \"flexShrink\"\n});\nconst flexBasis = style({\n prop: \"flexBasis\",\n themeGet: getPercent\n});\nconst flexDirection = style({\n prop: \"flexDirection\"\n});\nconst flex = style({\n prop: \"flex\"\n});\nconst justifySelf = style({\n prop: \"justifySelf\"\n});\nconst alignSelf = style({\n prop: \"alignSelf\"\n});\nconst order = style({\n prop: \"order\"\n});\nconst flexboxes = compose(display, alignItems, alignContent, justifyContent, justifyItems, flexWrap, flexBasis, flexShrink, flexGrow, flexDirection, flex, justifySelf, alignSelf, order);\nconst getSpace = themeGetter({\n name: \"space\",\n key: \"space\",\n compose: getPx,\n shorthand: true,\n transform: transformNegative\n});\nconst margin = style({\n prop: [\"margin\", \"m\"],\n themeGet: getSpace,\n css: \"margin\"\n});\nconst marginTop = style({\n prop: [\"marginTop\", \"mt\"],\n themeGet: getSpace,\n css: \"marginTop\"\n});\nconst marginRight = style({\n prop: [\"marginRight\", \"mr\"],\n themeGet: getSpace,\n css: \"marginRight\"\n});\nconst marginBottom = style({\n prop: [\"marginBottom\", \"mb\"],\n themeGet: getSpace,\n css: \"marginBottom\"\n});\nconst marginLeft = style({\n prop: [\"marginLeft\", \"ml\"],\n themeGet: getSpace,\n css: \"marginLeft\"\n});\nconst mx = style({\n prop: \"mx\",\n themeGet: getSpace,\n css: [\"marginRight\", \"marginLeft\"]\n});\nconst my = style({\n prop: \"my\",\n themeGet: getSpace,\n css: [\"marginTop\", \"marginBottom\"]\n});\nconst padding = style({\n prop: [\"padding\", \"p\"],\n themeGet: getSpace,\n css: \"padding\"\n});\nconst paddingTop = style({\n prop: [\"paddingTop\", \"pt\"],\n themeGet: getSpace,\n css: \"paddingTop\"\n});\nconst paddingRight = style({\n prop: [\"paddingRight\", \"pr\"],\n themeGet: getSpace,\n css: \"paddingRight\"\n});\nconst paddingBottom = style({\n prop: [\"paddingBottom\", \"pb\"],\n themeGet: getSpace,\n css: \"paddingBottom\"\n});\nconst paddingLeft = style({\n prop: [\"paddingLeft\", \"pl\"],\n themeGet: getSpace,\n css: \"paddingLeft\"\n});\nconst px = style({\n prop: \"px\",\n themeGet: getSpace,\n css: [\"paddingRight\", \"paddingLeft\"]\n});\nconst py = style({\n prop: \"py\",\n themeGet: getSpace,\n css: [\"paddingTop\", \"paddingBottom\"]\n});\nconst spaceY = style({\n prop: \"spaceY\",\n themeGet: getSpace,\n css: value => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-y-reverse\": 0,\n marginTop: \"calc(\".concat(value, \" * calc(1 - var(--x-space-y-reverse)))\"),\n marginBottom: \"calc(\".concat(value, \" * var(--x-space-y-reverse))\")\n }\n })\n});\nconst spaceX = style({\n prop: \"spaceX\",\n themeGet: getSpace,\n css: value => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-x-reverse\": 0,\n marginRight: \"calc(\".concat(value, \" * var(--x-space-x-reverse))\"),\n marginLeft: \"calc(\".concat(value, \" * calc(1 - var(--x-space-x-reverse)))\")\n }\n })\n});\nconst spaceXReverse = style({\n prop: \"spaceXReverse\",\n css: () => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-x-reverse\": \"1\"\n }\n })\n});\nconst spaceYReverse = style({\n prop: \"spaceYReverse\",\n css: () => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-y-reverse\": \"1\"\n }\n })\n});\nconst space$1 = compose(margin, marginTop, marginRight, marginBottom, marginLeft, mx, my, padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py, spaceX, spaceY, spaceXReverse, spaceYReverse);\nconst gap = style({\n prop: \"gap\",\n themeGet: getSpace\n});\nconst columnGap = style({\n prop: \"columnGap\",\n themeGet: getSpace\n});\nconst rowGap = style({\n prop: \"rowGap\",\n themeGet: getSpace\n});\nconst gridColumn = style({\n prop: \"gridColumn\"\n});\nconst gridRow = style({\n prop: \"gridRow\"\n});\nconst gridAutoFlow = style({\n prop: \"gridAutoFlow\"\n});\nconst gridAutoColumns = style({\n prop: \"gridAutoColumns\"\n});\nconst gridAutoRows = style({\n prop: \"gridAutoRows\"\n});\nconst gridTemplateColumns = style({\n prop: \"gridTemplateColumns\",\n key: \"gridTemplateColumns\"\n});\nconst gridTemplateRows = style({\n prop: \"gridTemplateRows\",\n key: \"gridTemplateRows\"\n});\nconst gridTemplateAreas = style({\n prop: \"gridTemplateAreas\"\n});\nconst gridArea = style({\n prop: \"gridArea\"\n});\nconst grids = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nconst appearance = style({\n prop: \"appearance\"\n});\nconst cursor = style({\n prop: \"cursor\"\n});\nconst pointerEvents = style({\n prop: \"pointerEvents\"\n});\nconst resize = style({\n prop: \"resize\"\n});\nconst userSelect = style({\n prop: \"userSelect\"\n});\nconst interactivity = compose(appearance, cursor, pointerEvents, resize, userSelect);\nconst getSize = themeGetter({\n name: \"size\",\n key: \"sizes\",\n compose: getPercent\n});\nconst width = style({\n prop: \"w\",\n themeGet: getSize,\n css: \"width\"\n});\nconst height = style({\n prop: \"h\",\n themeGet: getSize,\n css: \"height\"\n});\nconst maxWidth = style({\n prop: [\"maxWidth\", \"maxW\"],\n themeGet: getSize,\n css: \"maxWidth\"\n});\nconst maxHeight = style({\n prop: [\"maxHeight\", \"maxH\"],\n themeGet: getSize,\n css: \"maxHeight\"\n});\nconst minWidth = style({\n prop: [\"minWidth\", \"minW\"],\n themeGet: getSize,\n css: \"minWidth\"\n});\nconst minHeight = style({\n prop: [\"minHeight\", \"minH\"],\n themeGet: getSize,\n css: \"minHeight\"\n});\nconst maskSize = style({\n prop: \"maskSize\",\n themeGet: themeGetter({\n name: \"size\",\n key: \"sizes\",\n compose: getPercent,\n multiple: true,\n shorthand: true\n })\n});\nconst sizing = compose(width, height, maxWidth, maxHeight, minWidth, minHeight, maskSize);\nconst fill = style({\n prop: \"fill\",\n themeGet: getColor\n});\nconst stroke = style({\n prop: \"stroke\",\n themeGet: getColor\n});\nconst svg = compose(fill, stroke);\nconst borderCollapse = style({\n prop: \"borderCollapse\"\n});\nconst tableLayout = style({\n prop: \"tableLayout\"\n});\nconst tables = compose(borderCollapse, tableLayout);\nconst getTransform = themeGetter({\n name: \"transform\",\n key: \"transforms\"\n});\nconst transform = style({\n prop: \"transform\",\n themeGet: getTransform,\n css: value => {\n if (value === true) {\n return {\n \"--x-translate-x\": 0,\n \"--x-translate-y\": 0,\n \"--x-rotate\": 0,\n \"--x-skew-x\": 0,\n \"--x-skew-y\": 0,\n \"--x-scale-x\": \"1\",\n \"--x-scale-y\": \"1\",\n transform: \"translate3d(var(--x-translate-x), var(--x-translate-y), 0) rotate(var(--x-rotate)) skewX(var(--x-skew-x)) skewY(var(--x-skew-y)) scaleX(var(--x-scale-x)) scaleY(var(--x-scale-y))\"\n };\n }\n\n return {\n transform: value\n };\n }\n});\nconst transformOrigin = style({\n prop: \"transformOrigin\"\n});\nconst translateX = style({\n prop: \"translateX\",\n themeGet: getSpace,\n css: \"--x-translate-x\"\n});\nconst translateY = style({\n prop: \"translateY\",\n themeGet: getSpace,\n css: \"--x-translate-y\"\n});\nconst rotate = style({\n prop: \"rotate\",\n themeGet: getAngle,\n css: \"--x-rotate\"\n});\nconst skewX = style({\n prop: \"skewX\",\n themeGet: getAngle,\n css: \"--x-skew-x\"\n});\nconst skewY = style({\n prop: \"skewY\",\n themeGet: getAngle,\n css: \"--x-skew-y\"\n});\nconst scale = style({\n prop: \"scale\",\n transform: v => String(v),\n css: [\"--x-scale-x\", \"--x-scale-y\"]\n});\nconst scaleX = style({\n prop: \"scaleX\",\n transform: v => String(v),\n css: \"--x-scale-x\"\n});\nconst scaleY = style({\n prop: \"scaleY\",\n transform: v => String(v),\n css: \"--x-scale-y\"\n});\nconst transforms = compose(transform, transformOrigin, translateX, translateY, rotate, skewX, skewY, scale, scaleX, scaleY);\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$2.call(b, prop)) __defNormalProp$2(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$2) for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop)) __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\n\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\n\nconst getFont = themeGetter({\n name: \"font\",\n key: \"fonts\"\n});\nconst getLineHeight = themeGetter({\n name: \"lineHeight\",\n key: \"lineHeights\",\n transform: (value, _ref7) => {\n let {\n props\n } = _ref7;\n\n var _a, _b, _c;\n\n const rootFontSize = (_c = (_b = (_a = props == null ? void 0 : props.theme) == null ? void 0 : _a.settings) == null ? void 0 : _b.rootFontSize) != null ? _c : void 0;\n return rpx(value, {\n rootFontSize\n });\n }\n});\nconst getFontWeight = themeGetter({\n name: \"fontWeight\",\n key: \"fontWeights\"\n});\nconst getLetterSpacing = themeGetter({\n name: \"letterSpacing\",\n key: \"letterSpacings\",\n compose: getPx\n});\nconst getFontSize = themeGetter({\n name: \"fontSize\",\n key: \"fontSizes\",\n compose: getPx\n});\nconst fontFamily = style({\n prop: \"fontFamily\",\n themeGet: getFont\n});\nconst fontSize = style({\n prop: \"fontSize\",\n themeGet: getFontSize\n});\nconst lineHeight = style({\n prop: \"lineHeight\",\n themeGet: getLineHeight\n});\nconst fontWeight = style({\n prop: \"fontWeight\",\n themeGet: getFontWeight\n});\nconst fontStyle = style({\n prop: \"fontStyle\"\n});\nconst letterSpacing = style({\n prop: \"letterSpacing\",\n themeGet: getLetterSpacing\n});\nconst color = style({\n prop: \"color\",\n themeGet: getColor\n});\nconst textTransform = style({\n prop: \"textTransform\"\n});\nconst textDecoration = style({\n prop: \"textDecoration\"\n});\nconst textAlign = style({\n prop: \"textAlign\"\n});\nconst verticalAlign = style({\n prop: \"verticalAlign\"\n});\nconst whiteSpace = style({\n prop: \"whiteSpace\"\n});\nconst textOverflow = style({\n prop: \"textOverflow\"\n});\nconst listStyleType = style({\n prop: \"listStyleType\"\n});\nconst listStylePosition = style({\n prop: \"listStylePosition\"\n});\nconst all = compose(space$1, fontFamily, fontSize, fontStyle, lineHeight, fontWeight, textAlign, letterSpacing, color, textTransform, textDecoration, verticalAlign, whiteSpace, textOverflow, listStyleType, listStylePosition);\nconst text = style({\n prop: \"text\",\n key: \"texts\",\n css: value => _ref8 => {\n let {\n theme\n } = _ref8;\n return all(__spreadProps$1(__spreadValues$2({}, value), {\n theme\n }));\n }\n});\nconst typography = compose(all, text);\nconst system = compose(animations, backgrounds, borders, effects, flexboxGrids, flexboxes, grids, interactivity, layout, sizing, space$1, svg, tables, transforms, transitions$1, typography);\n\nconst th = (path, defaultValue) => props => {\n const value = getThemeValue(props, path);\n if (is(value)) return value;\n if (is(defaultValue)) return defaultValue;\n return path;\n};\n\n[getAngle, getAnimation, getBorder, getBorderColor, getBorderStyle, getBorderWidth, getColor, getDuration, getFont, getFontSize, getFontWeight, getInset, getLetterSpacing, getLineHeight, getPercent, getPx, getRadius, getRingWidth, getShadow, getSize, getSpace, getTimingFunction, getTransform, getTransition, getTransitionProperty, getZIndex].forEach(themeGetter => {\n th[themeGetter.meta.name] = themeGetter;\n});\n\nconst up = (key, rules) => props => {\n const screens = getScreens(props);\n const value = getBreakpointMin(screens, key);\n if (value === null) return rules;\n return [\"\".concat(mediaMinWidth(value), \" {\"), rules, \"}\"];\n};\n\nconst down = (key, rules) => props => {\n const screens = getScreens(props);\n const value = getBreakpointMax(screens, key);\n if (value === null) return null;\n return [\"\".concat(mediaMaxWidth(value), \" {\"), rules, \"}\"];\n};\n\nconst between = (lower, upper, rules) => props => {\n const screens = getScreens(props);\n const min = getBreakpointMin(screens, lower);\n const max = getBreakpointMax(screens, upper);\n if (max === null) return up(lower, rules)(props);\n if (min === null) return down(upper, rules)(props);\n return [\"\".concat(mediaBetweenWidth(min, max), \" {\"), rules, \"}\"];\n};\n\nconst breakpoints = values => props => {\n const allRules = [];\n const keys = Object.keys(values);\n const keysLength = keys.length;\n\n for (let i = 0; i < keysLength; i++) {\n const key = keys[i];\n const rules = values[key];\n const result = up(key, rules)(props);\n\n if (Array.isArray(result)) {\n result.forEach(v => allRules.push(v));\n } else {\n allRules.push(result);\n }\n }\n\n return allRules;\n};\n\nconst rpxTransformers = {\n px: value => remPx(rpx(value)),\n border: value => num(value) && value > 0 ? \"\".concat(remPx(value), \" solid\") : value\n};\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$1.call(b, prop)) __defNormalProp$1(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$1) for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop)) __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\n\nconst defaultAlphaVariants = [0, 5, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90, 95, 100];\n\nconst generateHexAlphaVariants = function (colors) {\n let variants = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultAlphaVariants;\n\n const transform = (value, variant) => \"\".concat(value).concat(Math.round(variant / 100 * 255).toString(16));\n\n const alphaColors = Object.keys(colors).reduce((obj, key) => {\n variants.forEach(variant => {\n const value = colors[key];\n const variantKey = \"\".concat(key, \"-a\").concat(variant);\n obj[variantKey] = string(value) ? transform(value, variant) : generateHexAlphaVariants(value, variants);\n });\n return obj;\n }, {});\n return __spreadValues$1(__spreadValues$1({}, colors), alphaColors);\n};\n\nconst defaultTones = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\n\nconst aliasColor = function (alias, color) {\n let tones = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultTones;\n let variants = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultAlphaVariants;\n return tones.reduce((obj, tone) => {\n obj[\"\".concat(alias, \"-\").concat(tone)] = th.color(\"\".concat(color, \"-\").concat(tone));\n variants.forEach(i => {\n obj[\"\".concat(alias, \"-\").concat(tone, \"-a\").concat(i)] = th.color(\"\".concat(color, \"-\").concat(tone, \"-a\").concat(i));\n });\n return obj;\n }, {});\n};\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);\n\n if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\nconst space = {\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\"\n};\nconst timingFunctions = {\n \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n};\nconst transitionProperties = {\n default: [\"background-color\", \"border-color\", \"color\", \"fill\", \"stroke\", \"opacity\", \"box-shadow\", \"transform\"],\n colors: [\"background-color\", \"border-color\", \"color\", \"fill\", \"stroke\"],\n opacity: [\"opacity\"],\n shadow: [\"box-shadow\"],\n transform: [\"transform\"]\n};\nconst transitions = Object.keys(transitionProperties).reduce((obj, key) => {\n obj[key] = transitionProperties[key].map(property => \"\".concat(property, \" \").concat(timingFunctions[\"ease-in-out\"], \" 150ms\")).join(\",\");\n return obj;\n}, {});\nconst colors = {\n black: \"#000000\",\n white: \"#ffffff\",\n \"blue-gray-50\": \"#f8fafc\",\n \"blue-gray-100\": \"#f1f5f9\",\n \"blue-gray-200\": \"#e2e8f0\",\n \"blue-gray-300\": \"#cbd5e1\",\n \"blue-gray-400\": \"#94a3b8\",\n \"blue-gray-500\": \"#64748b\",\n \"blue-gray-600\": \"#475569\",\n \"blue-gray-700\": \"#334155\",\n \"blue-gray-800\": \"#1e293b\",\n \"blue-gray-900\": \"#0f172a\",\n \"cool-gray-50\": \"#f9fafb\",\n \"cool-gray-100\": \"#f3f4f6\",\n \"cool-gray-200\": \"#e5e7eb\",\n \"cool-gray-300\": \"#d1d5db\",\n \"cool-gray-400\": \"#9ca3af\",\n \"cool-gray-500\": \"#6b7280\",\n \"cool-gray-600\": \"#4b5563\",\n \"cool-gray-700\": \"#374151\",\n \"cool-gray-800\": \"#1f2937\",\n \"cool-gray-900\": \"#111827\",\n \"gray-50\": \"#fafafa\",\n \"gray-100\": \"#f4f4f5\",\n \"gray-200\": \"#e4e4e7\",\n \"gray-300\": \"#d4d4d8\",\n \"gray-400\": \"#a1a1aa\",\n \"gray-500\": \"#71717a\",\n \"gray-600\": \"#52525b\",\n \"gray-700\": \"#3f3f46\",\n \"gray-800\": \"#27272a\",\n \"gray-900\": \"#18181b\",\n \"true-gray-50\": \"#fafafa\",\n \"true-gray-100\": \"#f5f5f5\",\n \"true-gray-200\": \"#e5e5e5\",\n \"true-gray-300\": \"#d4d4d4\",\n \"true-gray-400\": \"#a3a3a3\",\n \"true-gray-500\": \"#737373\",\n \"true-gray-600\": \"#525252\",\n \"true-gray-700\": \"#404040\",\n \"true-gray-800\": \"#262626\",\n \"true-gray-900\": \"#171717\",\n \"warm-gray-50\": \"#fafaf9\",\n \"warm-gray-100\": \"#f5f5f4\",\n \"warm-gray-200\": \"#e7e5e4\",\n \"warm-gray-300\": \"#d6d3d1\",\n \"warm-gray-400\": \"#a8a29e\",\n \"warm-gray-500\": \"#78716c\",\n \"warm-gray-600\": \"#57534e\",\n \"warm-gray-700\": \"#44403c\",\n \"warm-gray-800\": \"#292524\",\n \"warm-gray-900\": \"#1c1917\",\n \"red-50\": \"#fef2f2\",\n \"red-100\": \"#fee2e2\",\n \"red-200\": \"#fecaca\",\n \"red-300\": \"#fca5a5\",\n \"red-400\": \"#f87171\",\n \"red-500\": \"#ef4444\",\n \"red-600\": \"#dc2626\",\n \"red-700\": \"#b91c1c\",\n \"red-800\": \"#991b1b\",\n \"red-900\": \"#7f1d1d\",\n \"orange-50\": \"#fff7ed\",\n \"orange-100\": \"#ffedd5\",\n \"orange-200\": \"#fed7aa\",\n \"orange-300\": \"#fdba74\",\n \"orange-400\": \"#fb923c\",\n \"orange-500\": \"#f97316\",\n \"orange-600\": \"#ea580c\",\n \"orange-700\": \"#c2410c\",\n \"orange-800\": \"#9a3412\",\n \"orange-900\": \"#7c2d12\",\n \"amber-50\": \"#fffbeb\",\n \"amber-100\": \"#fef3c7\",\n \"amber-200\": \"#fde68a\",\n \"amber-300\": \"#fcd34d\",\n \"amber-400\": \"#fbbf24\",\n \"amber-500\": \"#f59e0b\",\n \"amber-600\": \"#d97706\",\n \"amber-700\": \"#b45309\",\n \"amber-800\": \"#92400e\",\n \"amber-900\": \"#78350f\",\n \"yellow-50\": \"#fefce8\",\n \"yellow-100\": \"#fef9c3\",\n \"yellow-200\": \"#fef08a\",\n \"yellow-300\": \"#fde047\",\n \"yellow-400\": \"#facc15\",\n \"yellow-500\": \"#eab308\",\n \"yellow-600\": \"#ca8a04\",\n \"yellow-700\": \"#a16207\",\n \"yellow-800\": \"#854d0e\",\n \"yellow-900\": \"#713f12\",\n \"lime-50\": \"#f7fee7\",\n \"lime-100\": \"#ecfccb\",\n \"lime-200\": \"#d9f99d\",\n \"lime-300\": \"#bef264\",\n \"lime-400\": \"#a3e635\",\n \"lime-500\": \"#84cc16\",\n \"lime-600\": \"#65a30d\",\n \"lime-700\": \"#4d7c0f\",\n \"lime-800\": \"#3f6212\",\n \"lime-900\": \"#365314\",\n \"green-50\": \"#f0fdf4\",\n \"green-100\": \"#dcfce7\",\n \"green-200\": \"#bbf7d0\",\n \"green-300\": \"#86efac\",\n \"green-400\": \"#4ade80\",\n \"green-500\": \"#22c55e\",\n \"green-600\": \"#16a34a\",\n \"green-700\": \"#15803d\",\n \"green-800\": \"#166534\",\n \"green-900\": \"#14532d\",\n \"emerald-50\": \"#ecfdf5\",\n \"emerald-100\": \"#d1fae5\",\n \"emerald-200\": \"#a7f3d0\",\n \"emerald-300\": \"#6ee7b7\",\n \"emerald-400\": \"#34d399\",\n \"emerald-500\": \"#10b981\",\n \"emerald-600\": \"#059669\",\n \"emerald-700\": \"#047857\",\n \"emerald-800\": \"#065f46\",\n \"emerald-900\": \"#064e3b\",\n \"teal-50\": \"#f0fdfa\",\n \"teal-100\": \"#ccfbf1\",\n \"teal-200\": \"#99f6e4\",\n \"teal-300\": \"#5eead4\",\n \"teal-400\": \"#2dd4bf\",\n \"teal-500\": \"#14b8a6\",\n \"teal-600\": \"#0d9488\",\n \"teal-700\": \"#0f766e\",\n \"teal-800\": \"#115e59\",\n \"teal-900\": \"#134e4a\",\n \"cyan-50\": \"#ecfeff\",\n \"cyan-100\": \"#cffafe\",\n \"cyan-200\": \"#a5f3fc\",\n \"cyan-300\": \"#67e8f9\",\n \"cyan-400\": \"#22d3ee\",\n \"cyan-500\": \"#06b6d4\",\n \"cyan-600\": \"#0891b2\",\n \"cyan-700\": \"#0e7490\",\n \"cyan-800\": \"#155e75\",\n \"cyan-900\": \"#164e63\",\n \"light-blue-50\": \"#f0f9ff\",\n \"light-blue-100\": \"#e0f2fe\",\n \"light-blue-200\": \"#bae6fd\",\n \"light-blue-300\": \"#7dd3fc\",\n \"light-blue-400\": \"#38bdf8\",\n \"light-blue-500\": \"#0ea5e9\",\n \"light-blue-600\": \"#0284c7\",\n \"light-blue-700\": \"#0369a1\",\n \"light-blue-800\": \"#075985\",\n \"light-blue-900\": \"#0c4a6e\",\n \"blue-50\": \"#eff6ff\",\n \"blue-100\": \"#dbeafe\",\n \"blue-200\": \"#bfdbfe\",\n \"blue-300\": \"#93c5fd\",\n \"blue-400\": \"#60a5fa\",\n \"blue-500\": \"#3b82f6\",\n \"blue-600\": \"#2563eb\",\n \"blue-700\": \"#1d4ed8\",\n \"blue-800\": \"#1e40af\",\n \"blue-900\": \"#1e3a8a\",\n \"indigo-50\": \"#eef2ff\",\n \"indigo-100\": \"#e0e7ff\",\n \"indigo-200\": \"#c7d2fe\",\n \"indigo-300\": \"#a5b4fc\",\n \"indigo-400\": \"#818cf8\",\n \"indigo-500\": \"#6366f1\",\n \"indigo-600\": \"#4f46e5\",\n \"indigo-700\": \"#4338ca\",\n \"indigo-800\": \"#3730a3\",\n \"indigo-900\": \"#312e81\",\n \"violet-50\": \"#f5f3ff\",\n \"violet-100\": \"#ede9fe\",\n \"violet-200\": \"#ddd6fe\",\n \"violet-300\": \"#c4b5fd\",\n \"violet-400\": \"#a78bfa\",\n \"violet-500\": \"#8b5cf6\",\n \"violet-600\": \"#7c3aed\",\n \"violet-700\": \"#6d28d9\",\n \"violet-800\": \"#5b21b6\",\n \"violet-900\": \"#4c1d95\",\n \"purple-50\": \"#faf5ff\",\n \"purple-100\": \"#f3e8ff\",\n \"purple-200\": \"#e9d5ff\",\n \"purple-300\": \"#d8b4fe\",\n \"purple-400\": \"#c084fc\",\n \"purple-500\": \"#a855f7\",\n \"purple-600\": \"#9333ea\",\n \"purple-700\": \"#7e22ce\",\n \"purple-800\": \"#6b21a8\",\n \"purple-900\": \"#581c87\",\n \"fuchsia-50\": \"#fdf4ff\",\n \"fuchsia-100\": \"#fae8ff\",\n \"fuchsia-200\": \"#f5d0fe\",\n \"fuchsia-300\": \"#f0abfc\",\n \"fuchsia-400\": \"#e879f9\",\n \"fuchsia-500\": \"#d946ef\",\n \"fuchsia-600\": \"#c026d3\",\n \"fuchsia-700\": \"#a21caf\",\n \"fuchsia-800\": \"#86198f\",\n \"fuchsia-900\": \"#701a75\",\n \"pink-50\": \"#fdf2f8\",\n \"pink-100\": \"#fce7f3\",\n \"pink-200\": \"#fbcfe8\",\n \"pink-300\": \"#f9a8d4\",\n \"pink-400\": \"#f472b6\",\n \"pink-500\": \"#ec4899\",\n \"pink-600\": \"#db2777\",\n \"pink-700\": \"#be185d\",\n \"pink-800\": \"#9d174d\",\n \"pink-900\": \"#831843\",\n \"rose-50\": \"#fff1f2\",\n \"rose-100\": \"#ffe4e6\",\n \"rose-200\": \"#fecdd3\",\n \"rose-300\": \"#fda4af\",\n \"rose-400\": \"#fb7185\",\n \"rose-500\": \"#f43f5e\",\n \"rose-600\": \"#e11d48\",\n \"rose-700\": \"#be123c\",\n \"rose-800\": \"#9f1239\",\n \"rose-900\": \"#881337\"\n};\nconst fontSizes = {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n default: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\"\n};\nconst texts = Object.keys(fontSizes).reduce((texts2, key) => {\n texts2[key] = {\n fontSize: key,\n lineHeight: key\n };\n return texts2;\n}, {});\nconst defaultTheme = {\n colors: generateHexAlphaVariants(colors),\n space,\n screens: {\n _: 0,\n xs: 0,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n \"2xl\": 1536\n },\n durations: {\n instant: \"100ms\",\n \"fast-in\": \"250ms\",\n \"fast-out\": \"200ms\",\n \"slow-in\": \"300ms\",\n \"slow-out\": \"250ms\"\n },\n sizes: __spreadProps(__spreadValues({}, space), {\n 0.5: void 0,\n 1: void 0,\n \"0.5s\": space[0.5],\n \"1s\": space[1],\n full: \"100%\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\"\n }),\n radii: {\n none: \"0\",\n sm: \"0.125rem\",\n default: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\"\n },\n shadows: {\n xs: \"0 0 0 1px rgba(0, 0, 0, 0.05)\",\n sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n default: \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n inner: \"inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)\",\n outline: \"0 0 0 3px rgba(66, 153, 225, 0.5)\"\n },\n fontSizes,\n fontWeights: {\n hairline: \"100\",\n thin: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\"\n },\n fonts: {\n mono: \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace\",\n serif: \"ui-serif, Georgia, Cambria, \\\"Times New Roman\\\", Times, serif\",\n sans: \"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\"\"\n },\n letterSpacings: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\"\n },\n lineHeights: {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n 3: \".75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n xs: \"1rem\",\n sm: \"1.25rem\",\n default: \"1.5rem\",\n lg: \"1.75rem\",\n xl: \"1.75rem\",\n \"2xl\": \"2rem\",\n \"3xl\": \"2.25rem\",\n \"4xl\": \"2.5rem\",\n \"5xl\": 1,\n \"6xl\": 1,\n \"7xl\": 1,\n \"8xl\": 1,\n \"9xl\": 1\n },\n gridTemplateColumns: {\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\"\n },\n gridTemplateRows: {\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\"\n },\n borderWidths: {\n default: 1\n },\n ringWidths: {\n default: 3\n },\n borders: {\n default: \"1px solid transparent\"\n },\n texts,\n transitions,\n transitionProperties,\n timingFunctions,\n animations: {\n spin: \"x-spin 1s linear infinite\",\n ping: \"x-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\",\n pulse: \"x-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\n bounce: \"x-bounce 1s infinite\"\n },\n states: {\n _: null,\n motionSafe: \"@media (prefers-reduced-motion: no-preference)\",\n motionReduce: \"@media (prefers-reduced-motion: reduce)\",\n first: \"&:first-child\",\n last: \"&:last-child\",\n odd: \"&:odd\",\n even: \"&:even\",\n visited: \"&:visited\",\n checked: \"&:checked\",\n focusWithin: \"&:focus-within\",\n hover: \"&:hover\",\n focus: \"&:focus\",\n focusVisible: \"&:focus-visible\",\n active: \"&:active\",\n disabled: \"&:disabled, &[aria-disabled=true]\",\n placeholder: \"&::placeholder\"\n }\n};\n\nconst getPreflightStyles = theme => \"\\n/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\\n*,::after,::before{box-sizing:border-box}:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}\\n\\n/* Role button pointer */\\n[role=button], button {\\n cursor: pointer;\\n}\\n\\n/* Remove default margins */\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\n/* Remove headings styles */\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/* Unstyle lists */\\nol,\\nul {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/* Image are block-level */\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block;\\n vertical-align: middle;\\n}\\n\\n/* Reset border styles */\\n*,\\n::before,\\n::after {\\n border-width: 0;\\n border-style: solid;\\n border-color: \".concat(th.color(\"default-border-color\", \"currentColor\")({\n theme\n}), \";\\n}\\n\\n* {\\n --x-ring-color: \").concat(th.color(\"default-ring-color\", \"rgba(59,130,246,0.5)\")({\n theme\n}), \";\\n}\\n\\n/* Default outline on buttons */\\nbutton:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n}\\n\\n// Animations\\n@keyframes x-spin {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes x-ping {\\n 0% {\\n transform: scale(1);\\n opacity: 1;\\n }\\n 75%, 100% {\\n transform: scale(2);\\n opacity: 0;\\n }\\n}\\n\\n@keyframes x-pulse {\\n 0%, 100% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: .5;\\n }\\n}\\n\\n@keyframes x-bounce {\\n 0%, 100% {\\n transform: translateY(-25%);\\n animationTimingFunction: cubic-bezier(0.8, 0, 1, 1);\\n }\\n 50% {\\n transform: translateY(0);\\n animationTimingFunction: cubic-bezier(0, 0, 0.2, 1);\\n }\\n}\\n\");\n\nexport { aliasColor, alignContent, alignItems, alignSelf, animation, animationDuration, animationTimingFunction, animations, appearance, background, backgroundAttachment, backgroundClip, backgroundColor, backgroundImage, backgroundPosition, backgroundRepeat, backgroundSize, backgrounds, between, border, borderBottom, borderBottomColor, borderBottomStyle, borderBottomWidth, borderCollapse, borderColor, borderLeft, borderLeftColor, borderLeftStyle, borderLeftWidth, borderRadius, borderRight, borderRightColor, borderRightStyle, borderRightWidth, borderStyle, borderTop, borderTopColor, borderTopStyle, borderTopWidth, borderWidth, borders, bottom, boxShadow, boxSizing, breakpoints, col, color, columnGap, compose, container, createStyleGenerator, cursor, defaultTheme, display, divideColor, divideStyle, divideX, divideXReverse, divideY, divideYReverse, down, effects, fill, flex, flexBasis, flexDirection, flexGrow, flexShrink, flexWrap, flexboxGrids, flexboxes, float, fontFamily, fontSize, fontStyle, fontWeight, gap, generateHexAlphaVariants, getAngle, getAnimation, getBorder, getBorderColor, getBorderStyle, getBorderWidth, getBreakpointMax, getBreakpointMin, getColor, getDuration, getFont, getFontSize, getFontWeight, getInset, getLetterSpacing, getLineHeight, getPercent, getPreflightStyles, getPx, getRadius, getRingWidth, getScreens, getShadow, getSize, getSpace, getStates, getTimingFunction, getTransform, getTransition, getTransitionProperty, getVariants, getZIndex, gradientFrom, gradientTo, gradientVia, gridArea, gridAutoColumns, gridAutoFlow, gridAutoRows, gridColumn, gridRow, gridTemplateAreas, gridTemplateColumns, gridTemplateRows, grids, height, interactivity, justifyContent, justifyItems, justifySelf, layout, left, letterSpacing, lineHeight, listStylePosition, listStyleType, margin, marginBottom, marginLeft, marginRight, marginTop, maskSize, maxHeight, maxWidth, minHeight, minWidth, mx, my, objectFit, opacity, order, outline, outlineColor, outlineOffset, outlineStyle, outlineWidth, overflow, overflowX, overflowY, overscrollBehavior, padding, paddingBottom, paddingLeft, paddingRight, paddingTop, pointerEvents, position, px, py, resize, right, ring, ringColor, ringInset, rotate, row, rowGap, rpxTransformers, scale, scaleX, scaleY, sizing, skewX, skewY, space$1 as space, spaceX, spaceXReverse, spaceY, spaceYReverse, stroke, style, svg, system, tableLayout, tables, text, textAlign, textDecoration, textOverflow, textShadow, textTransform, th, themeGetter, top, transform, transformOrigin, transforms, transition, transitionDelay, transitionDuration, transitionProperty, transitionTimingFunction, transitions$1 as transitions, translateX, translateY, typography, up, userSelect, verticalAlign, visibility, whiteSpace, width, zIndex };","const DEV = process.env.NODE_ENV !== \"production\";\nconst specialProperties = [\"__proto__\", \"constructor\", \"prototype\"];\n\nconst identity = x => x;\n\nconst is = n => n !== void 0 && n !== null;\n\nconst num = n => typeof n === \"number\" && !Number.isNaN(n);\n\nconst string = n => typeof n === \"string\" && n !== \"\";\n\nconst obj = n => typeof n === \"object\" && n !== null;\n\nconst func = n => typeof n === \"function\";\n\nconst negative = n => num(n) && n < 0;\n\nconst get = (from, path) => {\n const paths = String(path).split(\".\");\n const pathsLength = paths.length;\n let result = from;\n\n for (let i = 0; i < pathsLength; i += 1) {\n if (!is(result)) return result;\n const path2 = paths[i];\n result = is(result[path2]) ? result[path2] : void 0;\n }\n\n return result;\n};\n\nconst assign = (target, source) => {\n if (!is(source)) return target;\n\n for (const key in source) {\n if (specialProperties.indexOf(key) !== -1) {\n continue;\n }\n\n target[key] = source[key];\n }\n\n return target;\n};\n\nconst merge = (target, source) => {\n if (!is(source)) return target;\n\n for (const key in source) {\n if (specialProperties.indexOf(key) !== -1) {\n continue;\n }\n\n if (obj(target[key])) {\n target[key] = merge(assign({}, target[key]), source[key]);\n } else {\n target[key] = source[key];\n }\n }\n\n return target;\n};\n\nconst warn = (condition, message) => {\n if (DEV) {\n if (!condition && console.error) {\n console.error(message);\n }\n }\n};\n\nfunction cascade(value, arg) {\n if (typeof value === \"function\") {\n return cascade(value(arg), arg);\n }\n\n return value;\n}\n\nconst getThemeValue = function (props, path) {\n let initial = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : props.theme;\n return cascade(get(initial, path), props);\n};\n\nfunction omit(object, values) {\n const result = {};\n\n for (const key in object) {\n if (values.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n\n return result;\n}\n\nfunction flattenStrings(array) {\n return array.reduce((flattenedArray, value) => {\n const lastIndex = flattenedArray.length - 1;\n const last = flattenedArray[lastIndex];\n\n if (typeof last === \"string\" && typeof value === \"string\") {\n flattenedArray[lastIndex] = last + value;\n } else {\n flattenedArray.push(value);\n }\n\n return flattenedArray;\n }, []);\n}\n\nfunction flattenDown(array, result) {\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else {\n result.push(value);\n }\n }\n\n return result;\n}\n\nfunction flatten(array) {\n return flattenDown(array, []);\n}\n\nexport { assign, cascade, flatten, flattenStrings, func, get, getThemeValue, identity, is, merge, negative, num, obj, omit, string, warn };","/**\n * It's `true` if it is running in a browser environment or `false` if it is not\n * (SSR).\n * @example\n * const title = canUseDOM ? document.title : \"\";\n */\nconst canUseDOM = checkIsBrowser(); // Check if we can use the DOM. Useful for SSR purposes\n\nfunction checkIsBrowser() {\n var _window$document;\n\n return typeof window !== \"undefined\" && !!((_window$document = window.document) != null && _window$document.createElement);\n}\n/**\n * Returns `element.ownerDocument || document`.\n */\n\n\nfunction getDocument(node) {\n return node ? node.ownerDocument || node : document;\n}\n/**\n * Returns `element.ownerDocument.defaultView || window`.\n */\n\n\nfunction getWindow(node) {\n return getDocument(node).defaultView || window;\n}\n/**\n * Returns `element.ownerDocument.activeElement`.\n */\n\n\nfunction getActiveElement(node, activeDescendant) {\n if (activeDescendant === void 0) {\n activeDescendant = false;\n }\n\n const {\n activeElement\n } = getDocument(node);\n\n if (!(activeElement != null && activeElement.nodeName)) {\n // In IE11, activeElement might be an empty object if we're interacting\n // with elements inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n\n if (id) {\n const element = getDocument(activeElement).getElementById(id);\n\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement;\n}\n/**\n * Similar to `Element.prototype.contains`, but a little bit faster when\n * `element` is the same as `child`.\n * @example\n * contains(\n * document.getElementById(\"parent\"),\n * document.getElementById(\"child\")\n * );\n */\n\n\nfunction contains(parent, child) {\n return parent === child || parent.contains(child);\n}\n/**\n * Checks whether `element` is a frame element.\n */\n\n\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n/**\n * Checks whether `element` is a native HTML button element.\n * @example\n * isButton(document.querySelector(\"button\")); // true\n * isButton(document.querySelector(\"input[type='button']\")); // true\n * isButton(document.querySelector(\"div\")); // false\n * isButton(document.querySelector(\"input[type='text']\")); // false\n * isButton(document.querySelector(\"div[role='button']\")); // false\n */\n\n\nfunction isButton(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"button\") return true;\n\n if (tagName === \"input\" && element.type) {\n return buttonInputTypes.indexOf(element.type) !== -1;\n }\n\n return false;\n}\n\nconst buttonInputTypes = [\"button\", \"color\", \"file\", \"image\", \"reset\", \"submit\"];\n/**\n * Ponyfill for `Element.prototype.matches`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n */\n\nfunction matches(element, selectors) {\n if (\"matches\" in element) {\n return element.matches(selectors);\n }\n\n if (\"msMatchesSelector\" in element) {\n return element.msMatchesSelector(selectors);\n }\n\n return element.webkitMatchesSelector(selectors);\n}\n/**\n * Checks if the element is visible or not.\n */\n\n\nfunction isVisible(element) {\n const htmlElement = element;\n return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n/**\n * Ponyfill for `Element.prototype.closest`\n * @example\n * closest(document.getElementById(\"id\"), \"div\");\n * // same as\n * document.getElementById(\"id\").closest(\"div\");\n */\n\n\nfunction closest(element, selectors) {\n if (\"closest\" in element) return element.closest(selectors);\n\n do {\n if (matches(element, selectors)) return element;\n element = element.parentElement || element.parentNode;\n } while (element !== null && element.nodeType === 1);\n\n return null;\n}\n/**\n * Check whether the given element is a text field, where text field is defined\n * by the ability to select within the input.\n * @example\n * isTextField(document.querySelector(\"div\")); // false\n * isTextField(document.querySelector(\"input\")); // true\n * isTextField(document.querySelector(\"input[type='button']\")); // false\n * isTextField(document.querySelector(\"textarea\")); // true\n */\n\n\nfunction isTextField(element) {\n try {\n const isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;\n const isTextArea = element.tagName === \"TEXTAREA\";\n return isTextInput || isTextArea || false;\n } catch (error) {\n // Safari throws an exception when trying to get `selectionStart` on\n // non-text elements (which, understandably, don't have the text\n // selection API). We catch this via a try/catch block, as opposed to a more\n // explicit check of the element's input types, because of Safari's\n // non-standard behavior. This also means we don't have to worry about the\n // list of input types that support `selectionStart` changing as the HTML\n // spec evolves over time.\n return false;\n }\n}\n/**\n * Returns the element's role attribute, if it has one.\n */\n\n\nfunction getPopupRole(element, fallback) {\n const allowedPopupRoles = [\"dialog\", \"menu\", \"listbox\", \"tree\", \"grid\"];\n const role = element == null ? void 0 : element.getAttribute(\"role\");\n\n if (role && allowedPopupRoles.indexOf(role) !== -1) {\n return role;\n }\n\n return fallback;\n}\n/**\n * Returns the item role attribute based on the popup's role.\n */\n\n\nfunction getPopupItemRole(element, fallback) {\n var _itemRoleByPopupRole$;\n\n const itemRoleByPopupRole = {\n menu: \"menuitem\",\n listbox: \"option\",\n tree: \"treeitem\",\n grid: \"gridcell\"\n };\n const popupRole = getPopupRole(element);\n if (!popupRole) return fallback;\n const key = popupRole;\n return (_itemRoleByPopupRole$ = itemRoleByPopupRole[key]) != null ? _itemRoleByPopupRole$ : fallback;\n}\n/**\n * Returns the start and end offsets of the selection in the element.\n */\n\n\nfunction getTextboxSelection(element) {\n let start = 0;\n let end = 0;\n\n if (isTextField(element)) {\n start = element.selectionStart || 0;\n end = element.selectionEnd || 0;\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n\n if (selection != null && selection.rangeCount && selection.anchorNode && contains(element, selection.anchorNode) && selection.focusNode && contains(element, selection.focusNode)) {\n const range = selection.getRangeAt(0);\n const nextRange = range.cloneRange();\n nextRange.selectNodeContents(element);\n nextRange.setEnd(range.startContainer, range.startOffset);\n start = nextRange.toString().length;\n nextRange.setEnd(range.endContainer, range.endOffset);\n end = nextRange.toString().length;\n }\n }\n\n return {\n start,\n end\n };\n}\n/**\n * Calls `element.scrollIntoView()` if the element is hidden or partly hidden in\n * the viewport.\n */\n\n\nfunction scrollIntoViewIfNeeded(element, arg) {\n if (isPartiallyHidden(element) && \"scrollIntoView\" in element) {\n element.scrollIntoView(arg);\n }\n}\n/**\n * Returns the scrolling container element of a given element.\n */\n\n\nfunction getScrollingElement(element) {\n if (!element) return null;\n\n if (element.clientHeight && element.scrollHeight > element.clientHeight) {\n const {\n overflowY\n } = getComputedStyle(element);\n const isScrollable = overflowY !== \"visible\" && overflowY !== \"hidden\";\n if (isScrollable) return element;\n }\n\n return getScrollingElement(element.parentElement) || document.scrollingElement || document.body;\n}\n/**\n * Determines whether an element is hidden or partially hidden in the viewport.\n */\n\n\nfunction isPartiallyHidden(element) {\n const elementRect = element.getBoundingClientRect();\n const scroller = getScrollingElement(element);\n if (!scroller) return false;\n const scrollerRect = scroller.getBoundingClientRect();\n const isHTML = scroller.tagName === \"HTML\";\n const scrollerTop = isHTML ? scrollerRect.top + scroller.scrollTop : scrollerRect.top;\n const scrollerBottom = isHTML ? scroller.clientHeight : scrollerRect.bottom;\n const scrollerLeft = isHTML ? scrollerRect.left + scroller.scrollLeft : scrollerRect.left;\n const scrollerRight = isHTML ? scroller.clientWidth : scrollerRect.right;\n const top = elementRect.top < scrollerTop;\n const left = elementRect.left < scrollerLeft;\n const bottom = elementRect.bottom > scrollerBottom;\n const right = elementRect.right > scrollerRight;\n return top || left || bottom || right;\n}\n\nexport { canUseDOM, closest, contains, getActiveElement, getDocument, getPopupItemRole, getPopupRole, getScrollingElement, getTextboxSelection, getWindow, isButton, isFrame, isPartiallyHidden, isTextField, isVisible, matches, scrollIntoViewIfNeeded };","import { contains } from './dom.js';\nimport { isApple } from './platform.js';\n/**\n * Returns `true` if `event` has been fired within a React Portal element.\n */\n\nfunction isPortalEvent(event) {\n return !contains(event.currentTarget, event.target);\n}\n/**\n * Returns `true` if `event.target` and `event.currentTarget` are the same.\n */\n\n\nfunction isSelfTarget(event) {\n return event.target === event.currentTarget;\n}\n/**\n * Checks whether the user event is triggering a page navigation in a new tab.\n */\n\n\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const isAppleDevice = isApple();\n if (isAppleDevice && !event.metaKey) return false;\n if (!isAppleDevice && !event.ctrlKey) return false;\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\n/**\n * Checks whether the user event is triggering a download.\n */\n\n\nfunction isDownloading(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const tagName = element.tagName.toLowerCase();\n if (!event.altKey) return false;\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\n/**\n * Creates and dispatches an event.\n * @example\n * fireEvent(document.getElementById(\"id\"), \"blur\", {\n * bubbles: true,\n * cancelable: true,\n * });\n */\n\n\nfunction fireEvent(element, type, eventInit) {\n const event = new Event(type, eventInit);\n return element.dispatchEvent(event);\n}\n/**\n * Creates and dispatches a blur event.\n * @example\n * fireBlurEvent(document.getElementById(\"id\"));\n */\n\n\nfunction fireBlurEvent(element, eventInit) {\n const event = new FocusEvent(\"blur\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = { ...eventInit,\n bubbles: true\n };\n element.dispatchEvent(new FocusEvent(\"focusout\", bubbleInit));\n return defaultAllowed;\n}\n/**\n * Creates and dispatches a focus event.\n * @example\n * fireFocusEvent(document.getElementById(\"id\"));\n */\n\n\nfunction fireFocusEvent(element, eventInit) {\n const event = new FocusEvent(\"focus\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = { ...eventInit,\n bubbles: true\n };\n element.dispatchEvent(new FocusEvent(\"focusin\", bubbleInit));\n return defaultAllowed;\n}\n/**\n * Creates and dispatches a keyboard event.\n * @example\n * fireKeyboardEvent(document.getElementById(\"id\"), \"keydown\", {\n * key: \"ArrowDown\",\n * shiftKey: true,\n * });\n */\n\n\nfunction fireKeyboardEvent(element, type, eventInit) {\n const event = new KeyboardEvent(type, eventInit);\n return element.dispatchEvent(event);\n}\n/**\n * Creates and dispatches a click event.\n * @example\n * fireClickEvent(document.getElementById(\"id\"));\n */\n\n\nfunction fireClickEvent(element, eventInit) {\n const event = new MouseEvent(\"click\", eventInit);\n return element.dispatchEvent(event);\n}\n/**\n * Checks whether the focus/blur event is happening from/to outside of the\n * container element.\n * @example\n * const element = document.getElementById(\"id\");\n * element.addEventListener(\"blur\", (event) => {\n * if (isFocusEventOutside(event)) {\n * // ...\n * }\n * });\n */\n\n\nfunction isFocusEventOutside(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\n/**\n * Runs a callback on the next animation frame, but before a certain event.\n */\n\n\nfunction queueBeforeEvent(element, type, callback) {\n const raf = requestAnimationFrame(() => {\n element.removeEventListener(type, callImmediately, true);\n callback();\n });\n\n const callImmediately = () => {\n cancelAnimationFrame(raf);\n callback();\n }; // By listening to the event in the capture phase, we make sure the callback\n // is fired before the respective React events.\n\n\n element.addEventListener(type, callImmediately, {\n once: true,\n capture: true\n });\n return raf;\n}\n/**\n * Adds a global event listener, including on child frames.\n */\n\n\nfunction addGlobalEventListener(type, listener, options, scope) {\n if (scope === void 0) {\n scope = window;\n } // Prevent errors from \"sandbox\" frames.\n\n\n try {\n scope.document.addEventListener(type, listener, options);\n } catch (e) {}\n\n const listeners = [];\n\n for (let i = 0; i < ((_scope$frames = scope.frames) == null ? void 0 : _scope$frames.length); i += 1) {\n var _scope$frames;\n\n const frameWindow = scope.frames[i];\n\n if (frameWindow) {\n listeners.push(addGlobalEventListener(type, listener, options, frameWindow));\n }\n }\n\n const removeEventListener = () => {\n try {\n scope.document.removeEventListener(type, listener, options);\n } catch (e) {}\n\n listeners.forEach(listener => listener());\n };\n\n return removeEventListener;\n}\n\nexport { addGlobalEventListener, fireBlurEvent, fireClickEvent, fireEvent, fireFocusEvent, fireKeyboardEvent, isDownloading, isFocusEventOutside, isOpeningInNewTab, isPortalEvent, isSelfTarget, queueBeforeEvent };","import { matches, isVisible, isFrame, getActiveElement, closest, contains } from './dom.js';\nconst selector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), \" + \"textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], \" + \"iframe, object, embed, area[href], audio[controls], video[controls], \" + \"[contenteditable]:not([contenteditable='false'])\";\n\nfunction hasNegativeTabIndex(element) {\n const tabIndex = parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n return tabIndex < 0;\n}\n/**\n * Checks whether `element` is focusable or not.\n * @example\n * isFocusable(document.querySelector(\"input\")); // true\n * isFocusable(document.querySelector(\"input[tabindex='-1']\")); // true\n * isFocusable(document.querySelector(\"input[hidden]\")); // false\n * isFocusable(document.querySelector(\"input:disabled\")); // false\n */\n\n\nfunction isFocusable(element) {\n return matches(element, selector) && isVisible(element);\n}\n/**\n * Checks whether `element` is tabbable or not.\n * @example\n * isTabbable(document.querySelector(\"input\")); // true\n * isTabbable(document.querySelector(\"input[tabindex='-1']\")); // false\n * isTabbable(document.querySelector(\"input[hidden]\")); // false\n * isTabbable(document.querySelector(\"input:disabled\")); // false\n */\n\n\nfunction isTabbable(element) {\n return isFocusable(element) && !hasNegativeTabIndex(element);\n}\n/**\n * Returns all the focusable elements in `container`.\n */\n\n\nfunction getAllFocusableIn(container, includeContainer) {\n const elements = Array.from(container.querySelectorAll(selector));\n\n if (includeContainer) {\n elements.unshift(container);\n }\n\n const focusableElements = elements.filter(isFocusable);\n focusableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.splice(i, 1, ...getAllFocusableIn(frameBody));\n }\n });\n return focusableElements;\n}\n/**\n * Returns all the focusable elements in the document.\n */\n\n\nfunction getAllFocusable(includeBody) {\n return getAllFocusableIn(document.body, includeBody);\n}\n/**\n * Returns the first focusable element in `container`.\n */\n\n\nfunction getFirstFocusableIn(container, includeContainer) {\n const [first] = getAllFocusableIn(container, includeContainer);\n return first || null;\n}\n/**\n * Returns the first focusable element in the document.\n */\n\n\nfunction getFirstFocusable(includeBody) {\n return getFirstFocusableIn(document.body, includeBody);\n}\n/**\n * Returns all the tabbable elements in `container`, including the container\n * itself.\n */\n\n\nfunction getAllTabbableIn(container, includeContainer, fallbackToFocusable) {\n const elements = Array.from(container.querySelectorAll(selector));\n const tabbableElements = elements.filter(isTabbable);\n\n if (includeContainer && isTabbable(container)) {\n tabbableElements.unshift(container);\n }\n\n tabbableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getAllTabbableIn(frameBody, false, fallbackToFocusable);\n tabbableElements.splice(i, 1, ...allFrameTabbable);\n }\n });\n\n if (!tabbableElements.length && fallbackToFocusable) {\n return elements;\n }\n\n return tabbableElements;\n}\n/**\n * Returns all the tabbable elements in the document.\n */\n\n\nfunction getAllTabbable(fallbackToFocusable) {\n return getAllTabbableIn(document.body, false, fallbackToFocusable);\n}\n/**\n * Returns the first tabbable element in `container`, including the container\n * itself if it's tabbable.\n */\n\n\nfunction getFirstTabbableIn(container, includeContainer, fallbackToFocusable) {\n const [first] = getAllTabbableIn(container, includeContainer, fallbackToFocusable);\n return first || null;\n}\n/**\n * Returns the first tabbable element in the document.\n */\n\n\nfunction getFirstTabbable(fallbackToFocusable) {\n return getFirstTabbableIn(document.body, false, fallbackToFocusable);\n}\n/**\n * Returns the last tabbable element in `container`, including the container\n * itself if it's tabbable.\n */\n\n\nfunction getLastTabbableIn(container, includeContainer, fallbackToFocusable) {\n const allTabbable = getAllTabbableIn(container, includeContainer, fallbackToFocusable);\n return allTabbable[allTabbable.length - 1] || null;\n}\n/**\n * Returns the last tabbable element in the document.\n */\n\n\nfunction getLastTabbable(fallbackToFocusable) {\n return getLastTabbableIn(document.body, false, fallbackToFocusable);\n}\n/**\n * Returns the next tabbable element in `container`.\n */\n\n\nfunction getNextTabbableIn(container, includeContainer, fallbackToFirst, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer);\n const activeIndex = allFocusable.indexOf(activeElement);\n const nextFocusableElements = allFocusable.slice(activeIndex + 1);\n return nextFocusableElements.find(isTabbable) || (fallbackToFirst ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? nextFocusableElements[0] : null) || null;\n}\n/**\n * Returns the next tabbable element in the document.\n */\n\n\nfunction getNextTabbable(fallbackToFirst, fallbackToFocusable) {\n return getNextTabbableIn(document.body, false, fallbackToFirst, fallbackToFocusable);\n}\n/**\n * Returns the previous tabbable element in `container`.\n *\n */\n\n\nfunction getPreviousTabbableIn(container, includeContainer, fallbackToLast, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer).reverse();\n const activeIndex = allFocusable.indexOf(activeElement);\n const previousFocusableElements = allFocusable.slice(activeIndex + 1);\n return previousFocusableElements.find(isTabbable) || (fallbackToLast ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? previousFocusableElements[0] : null) || null;\n}\n/**\n * Returns the previous tabbable element in the document.\n */\n\n\nfunction getPreviousTabbable(fallbackToFirst, fallbackToFocusable) {\n return getPreviousTabbableIn(document.body, false, fallbackToFirst, fallbackToFocusable);\n}\n/**\n * Returns the closest focusable element.\n */\n\n\nfunction getClosestFocusable(element) {\n while (element && !isFocusable(element)) {\n element = closest(element, selector);\n }\n\n return element || null;\n}\n/**\n * Checks if `element` has focus. Elements that are referenced by\n * `aria-activedescendant` are also considered.\n * @example\n * hasFocus(document.getElementById(\"id\"));\n */\n\n\nfunction hasFocus(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (activeElement === element) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n return activeDescendant === element.id;\n}\n/**\n * Checks if `element` has focus within. Elements that are referenced by\n * `aria-activedescendant` are also considered.\n * @example\n * hasFocusWithin(document.getElementById(\"id\"));\n */\n\n\nfunction hasFocusWithin(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (contains(element, activeElement)) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n if (!(\"id\" in element)) return false;\n if (activeDescendant === element.id) return true;\n return !!element.querySelector(\"#\" + CSS.escape(activeDescendant));\n}\n/**\n * Focus on an element only if it's not already focused.\n */\n\n\nfunction focusIfNeeded(element) {\n if (!hasFocusWithin(element) && isFocusable(element)) {\n element.focus();\n }\n}\n/**\n * Disable focus on `element`.\n */\n\n\nfunction disableFocus(element) {\n var _element$getAttribute;\n\n const currentTabindex = (_element$getAttribute = element.getAttribute(\"tabindex\")) != null ? _element$getAttribute : \"\";\n element.setAttribute(\"data-tabindex\", currentTabindex);\n element.setAttribute(\"tabindex\", \"-1\");\n}\n/**\n * Makes elements inside container not tabbable.\n */\n\n\nfunction disableFocusIn(container, includeContainer) {\n const tabbableElements = getAllTabbableIn(container, includeContainer);\n tabbableElements.forEach(disableFocus);\n}\n/**\n * Restores tabbable elements inside container that were affected by\n * disableFocusIn.\n */\n\n\nfunction restoreFocusIn(container) {\n const elements = container.querySelectorAll(\"[data-tabindex]\");\n\n const restoreTabIndex = element => {\n const tabindex = element.getAttribute(\"data-tabindex\");\n element.removeAttribute(\"data-tabindex\");\n\n if (tabindex) {\n element.setAttribute(\"tabindex\", tabindex);\n } else {\n element.removeAttribute(\"tabindex\");\n }\n };\n\n if (container.hasAttribute(\"data-tabindex\")) {\n restoreTabIndex(container);\n }\n\n elements.forEach(restoreTabIndex);\n}\n/**\n * Focus on element and scroll into view.\n */\n\n\nfunction focusIntoView(element, options) {\n if (!(\"scrollIntoView\" in element)) {\n element.focus();\n } else {\n element.focus({\n preventScroll: true\n });\n element.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n ...options\n });\n }\n}\n\nexport { disableFocus, disableFocusIn, focusIfNeeded, focusIntoView, getAllFocusable, getAllFocusableIn, getAllTabbable, getAllTabbableIn, getClosestFocusable, getFirstFocusable, getFirstFocusableIn, getFirstTabbable, getFirstTabbableIn, getLastTabbable, getLastTabbableIn, getNextTabbable, getNextTabbableIn, getPreviousTabbable, getPreviousTabbableIn, hasFocus, hasFocusWithin, isFocusable, isTabbable, restoreFocusIn };","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useState, useRef, useCallback, useMemo, useReducer } from 'react';\nimport { canUseDOM } from './dom.js';\nimport { addGlobalEventListener } from './events.js';\nimport { setRef, applyState } from './misc.js'; // @ts-ignore Access React v18 hooks using string concatenation in order to\n// prevent Webpack from inferring that they are not present in React v17. For\n// example, React.useId will raise a compile time error when using React v17,\n// but React['use' + 'Id'] will not.\n\nconst useReactId = React[\"use\" + \"Id\"]; // @ts-ignore\n\nconst useReactDeferredValue = React[\"use\" + \"DeferredValue\"]; // @ts-ignore\n\nconst useInsertionEffect = React[\"use\" + \"InsertionEffect\"];\n/**\n * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side.\n */\n\nconst useSafeLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n/**\n * Returns a value that never changes even if the argument is updated.\n * @example\n * function Component({ prop }) {\n * const initialProp = useInitialValue(prop);\n * }\n */\n\nfunction useInitialValue(value) {\n const [initialValue] = useState(value);\n return initialValue;\n}\n/**\n * Returns a value that is lazily initiated and never changes.\n * @example\n * function Component() {\n * const set = useLazyValue(() => new Set());\n * }\n */\n\n\nfunction useLazyValue(init) {\n const ref = useRef();\n\n if (ref.current === undefined) {\n ref.current = init();\n }\n\n return ref.current;\n}\n/**\n * Creates a `React.RefObject` that is constantly updated with the incoming\n * value.\n * @example\n * function Component({ prop }) {\n * const propRef = useLiveRef(prop);\n * }\n */\n\n\nfunction useLiveRef(value) {\n const ref = useRef(value);\n useSafeLayoutEffect(() => {\n ref.current = value;\n });\n return ref;\n}\n/**\n * Keeps the reference of the previous value to be used in the render phase.\n */\n\n\nfunction usePreviousValue(value) {\n const [previousValue, setPreviousValue] = useState(value);\n\n if (value !== previousValue) {\n setPreviousValue(value);\n }\n\n return previousValue;\n}\n/**\n * Creates a stable callback function that has access to the latest state and\n * can be used within event handlers and effect callbacks. Throws when used in\n * the render phase.\n * @example\n * function Component(props) {\n * const onClick = useEvent(props.onClick);\n * React.useEffect(() => {}, [onClick]);\n * }\n */\n\n\nfunction useEvent(callback) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n\n if (useInsertionEffect) {\n useInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n ref.current = callback;\n }\n\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n/**\n * Merges React Refs into a single memoized function ref so you can pass it to\n * an element.\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const internalRef = React.useRef();\n * return
;\n * });\n */\n\n\nfunction useForkRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n\n return useMemo(() => {\n if (!refs.some(Boolean)) return;\n return value => {\n refs.forEach(ref => {\n setRef(ref, value);\n });\n };\n }, refs);\n}\n/**\n * Returns the ref element's ID.\n */\n\n\nfunction useRefId(ref, deps) {\n const [id, setId] = useState(undefined);\n useSafeLayoutEffect(() => {\n var _ref$current;\n\n setId(ref == null ? void 0 : (_ref$current = ref.current) == null ? void 0 : _ref$current.id);\n }, deps);\n return id;\n}\n/**\n * Generates a unique ID. Uses React's useId if available.\n */\n\n\nfunction useId(defaultId) {\n if (useReactId) {\n const reactId = useReactId();\n if (defaultId) return defaultId;\n return reactId;\n }\n\n const [id, setId] = useState(defaultId);\n useSafeLayoutEffect(() => {\n if (defaultId || id) return;\n const random = Math.random().toString(36).substr(2, 6);\n setId(\"id-\" + random);\n }, [defaultId, id]);\n return defaultId || id;\n}\n/**\n * Uses React's useDeferredValue if available.\n */\n\n\nfunction useDeferredValue(value) {\n if (useReactDeferredValue) {\n return useReactDeferredValue(value);\n }\n\n const [deferredValue, setDeferredValue] = useState(value);\n useEffect(() => {\n const raf = requestAnimationFrame(() => setDeferredValue(value));\n return () => cancelAnimationFrame(raf);\n }, [value]);\n return deferredValue;\n}\n/**\n * Returns the tag name by parsing an element ref and the `as` prop.\n * @example\n * function Component(props) {\n * const ref = React.useRef();\n * const tagName = useTagName(ref, \"button\"); // div\n * return
;\n * }\n */\n\n\nfunction useTagName(ref, type) {\n const [tagName, setTagName] = useState(() => stringOrUndefined(type));\n useSafeLayoutEffect(() => {\n var _ref$current2;\n\n setTagName((ref == null ? void 0 : (_ref$current2 = ref.current) == null ? void 0 : _ref$current2.tagName.toLowerCase()) || stringOrUndefined(type));\n }, [ref, type]);\n return tagName;\n}\n\nfunction stringOrUndefined(type) {\n if (typeof type === \"string\") {\n return type;\n }\n\n return;\n}\n/**\n * A `React.useEffect` that will not run on the first render.\n */\n\n\nfunction useUpdateEffect(effect, deps) {\n const mounted = useRef(false);\n useEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n }, deps);\n useEffect(() => () => {\n mounted.current = false;\n }, []);\n}\n/**\n * A `React.useLayoutEffect` that will not run on the first render.\n */\n\n\nfunction useUpdateLayoutEffect(effect, deps) {\n const mounted = useRef(false);\n useSafeLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n }, deps);\n useSafeLayoutEffect(() => () => {\n mounted.current = false;\n }, []);\n}\n/**\n * A custom version of `React.useState` that uses the `state` and `setState`\n * arguments. If they're not provided, it will use the internal state.\n */\n\n\nfunction useControlledState(defaultState, state, setState) {\n const [localState, setLocalState] = useState(defaultState);\n const nextState = state !== undefined ? state : localState;\n const stateRef = useLiveRef(state);\n const setStateRef = useLiveRef(setState);\n const nextStateRef = useLiveRef(nextState);\n const setNextState = useCallback(prevValue => {\n const setStateProp = setStateRef.current;\n\n if (setStateProp) {\n if (isSetNextState(setStateProp)) {\n setStateProp(prevValue);\n } else {\n const nextValue = applyState(prevValue, nextStateRef.current);\n nextStateRef.current = nextValue;\n setStateProp(nextValue);\n }\n }\n\n if (stateRef.current === undefined) {\n setLocalState(prevValue);\n }\n }, []);\n defineSetNextState(setNextState);\n return [nextState, setNextState];\n}\n\nconst SET_NEXT_STATE = Symbol(\"setNextState\");\n\nfunction isSetNextState(arg) {\n return arg[SET_NEXT_STATE] === true;\n}\n\nfunction defineSetNextState(arg) {\n if (!isSetNextState(arg)) {\n Object.defineProperty(arg, SET_NEXT_STATE, {\n value: true\n });\n }\n}\n/**\n * A React hook similar to `useState` and `useReducer`, but with the only\n * purpose of re-rendering the component.\n */\n\n\nfunction useForceUpdate() {\n return useReducer(() => [], []);\n}\n/**\n * Returns an event callback similar to `useEvent`, but this also accepts a\n * boolean value, which will be turned into a function.\n */\n\n\nfunction useBooleanEvent(booleanOrCallback) {\n return useEvent(typeof booleanOrCallback === \"function\" ? booleanOrCallback : () => booleanOrCallback);\n}\n/**\n * Returns props with an additional `wrapElement` prop.\n */\n\n\nfunction useWrapElement(props, callback, deps) {\n if (deps === void 0) {\n deps = [];\n }\n\n const wrapElement = useCallback(element => {\n if (props.wrapElement) {\n element = props.wrapElement(element);\n }\n\n return callback(element);\n }, [...deps, props.wrapElement]);\n return { ...props,\n wrapElement\n };\n}\n/**\n * Merges the portalRef prop and returns a `domReady` to be used in the\n * components that use Portal underneath.\n */\n\n\nfunction usePortalRef(portalProp, portalRefProp) {\n if (portalProp === void 0) {\n portalProp = false;\n }\n\n const [portalNode, setPortalNode] = useState(null);\n const portalRef = useForkRef(setPortalNode, portalRefProp);\n const domReady = !portalProp || portalNode;\n return {\n portalRef,\n portalNode,\n domReady\n };\n}\n/**\n * Returns a function that checks whether the mouse is moving.\n */\n\n\nfunction useIsMouseMoving() {\n useEffect(() => {\n // We're not returning the event listener cleanup function here because we\n // may lose some events if this component is unmounted, but others are\n // still mounted.\n addGlobalEventListener(\"mousemove\", setMouseMoving, true); // See https://github.com/ariakit/ariakit/issues/1137\n\n addGlobalEventListener(\"mousedown\", resetMouseMoving, true);\n addGlobalEventListener(\"mouseup\", resetMouseMoving, true);\n addGlobalEventListener(\"keydown\", resetMouseMoving, true);\n addGlobalEventListener(\"scroll\", resetMouseMoving, true);\n }, []);\n const isMouseMoving = useEvent(() => mouseMoving);\n return isMouseMoving;\n}\n\nlet mouseMoving = false;\nlet previousScreenX = 0;\nlet previousScreenY = 0;\n\nfunction hasMouseMovement(event) {\n const movementX = event.movementX || event.screenX - previousScreenX;\n const movementY = event.movementY || event.screenY - previousScreenY;\n previousScreenX = event.screenX;\n previousScreenY = event.screenY;\n return movementX || movementY || process.env.NODE_ENV === \"test\";\n}\n\nfunction setMouseMoving(event) {\n if (!hasMouseMovement(event)) return;\n mouseMoving = true;\n}\n\nfunction resetMouseMoving() {\n mouseMoving = false;\n}\n\nexport { useBooleanEvent, useControlledState, useDeferredValue, useEvent, useForceUpdate, useForkRef, useId, useInitialValue, useIsMouseMoving, useLazyValue, useLiveRef, usePortalRef, usePreviousValue, useRefId, useSafeLayoutEffect, useTagName, useUpdateEffect, useUpdateLayoutEffect, useWrapElement };","/**\n * Empty function.\n */\nfunction noop() {}\n/**\n * Compares two objects.\n * @example\n * shallowEqual({ a: \"a\" }, {}); // false\n * shallowEqual({ a: \"a\" }, { b: \"b\" }); // false\n * shallowEqual({ a: \"a\" }, { a: \"a\" }); // true\n * shallowEqual({ a: \"a\" }, { a: \"a\", b: \"b\" }); // false\n */\n\n\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (!a) return false;\n if (!b) return false;\n if (typeof a !== \"object\") return false;\n if (typeof b !== \"object\") return false;\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const {\n length\n } = aKeys;\n if (bKeys.length !== length) return false;\n\n for (const key of aKeys) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\n/**\n * Receives a `setState` argument and calls it with `currentValue` if it's a\n * function. Otherwise return the argument as the new value.\n * @example\n * applyState((value) => value + 1, 1); // 2\n * applyState(2, 1); // 2\n */\n\n\nfunction applyState(argument, currentValue) {\n if (isUpdater(argument)) {\n const value = isLazyValue(currentValue) ? currentValue() : currentValue;\n return argument(value);\n }\n\n return argument;\n}\n\nfunction isUpdater(argument) {\n return typeof argument === \"function\";\n}\n\nfunction isLazyValue(value) {\n return typeof value === \"function\";\n}\n/**\n * Sets both a function and object React ref.\n */\n\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n/**\n * Checks whether `arg` is an object or not.\n * @returns {boolean}\n */\n\n\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg != null;\n}\n/**\n * Checks whether `arg` is empty or not.\n * @example\n * isEmpty([]); // true\n * isEmpty([\"a\"]); // false\n * isEmpty({}); // true\n * isEmpty({ a: \"a\" }); // false\n * isEmpty(); // true\n * isEmpty(null); // true\n * isEmpty(undefined); // true\n * isEmpty(\"\"); // true\n */\n\n\nfunction isEmpty(arg) {\n if (Array.isArray(arg)) return !arg.length;\n if (isObject(arg)) return !Object.keys(arg).length;\n if (arg == null) return true;\n if (arg === \"\") return true;\n return false;\n}\n/**\n * Checks whether `arg` is a promise or not.\n * @returns {boolean}\n */\n\n\nfunction isPromise(arg) {\n return Boolean(arg && \"then\" in arg && typeof arg.then === \"function\");\n}\n/**\n * Checks whether `arg` is an integer or not.\n * @example\n * isInteger(1); // true\n * isInteger(1.5); // false\n * isInteger(\"1\"); // true\n * isInteger(\"1.5\"); // false\n */\n\n\nfunction isInteger(arg) {\n if (typeof arg === \"number\") {\n return Math.floor(arg) === arg;\n }\n\n return String(Math.floor(Number(arg))) === arg;\n}\n/**\n * Checks whether `prop` is an own property of `obj` or not.\n */\n\n\nfunction hasOwnProperty(object, prop) {\n return Object.prototype.hasOwnProperty.call(object, prop);\n}\n/**\n * Receives functions as arguments and returns a new function that calls all.\n */\n\n\nfunction chain() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function () {\n for (const fn of fns) {\n if (typeof fn === \"function\") {\n // @ts-ignore\n fn(...arguments);\n }\n }\n };\n}\n/**\n * Returns a string with the truthy values of `args` separated by space.\n */\n\n\nfunction cx() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.filter(Boolean).join(\" \") || undefined;\n}\n/**\n * Removes diatrics from a string.\n * TODO: Check if it works on WebView Android.\n */\n\n\nfunction normalizeString(str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n/**\n * Queues a function to be called at the end of the current event loop.\n */\n\n\nfunction queueMicrotask(callback) {\n if (window.queueMicrotask) {\n return window.queueMicrotask(callback);\n }\n\n Promise.resolve().then(callback);\n}\n\nexport { applyState, chain, cx, hasOwnProperty, isEmpty, isInteger, isObject, isPromise, noop, normalizeString, queueMicrotask, setRef, shallowEqual };","import { canUseDOM } from './dom.js';\n/**\n * Detects if the device has touch capabilities.\n */\n\nfunction isTouchDevice() {\n return canUseDOM && !!navigator.maxTouchPoints;\n}\n/**\n * Detects Apple device.\n */\n\n\nfunction isApple() {\n if (!canUseDOM) return false;\n return /mac|iphone|ipad|ipod/i.test(navigator.platform);\n}\n/**\n * Detects Safari browser.\n */\n\n\nfunction isSafari() {\n return canUseDOM && isApple() && /apple/i.test(navigator.vendor);\n}\n/**\n * Detects Firefox browser.\n */\n\n\nfunction isFirefox() {\n return canUseDOM && /firefox\\//i.test(navigator.userAgent);\n}\n/**\n * Detects Mac computer.\n */\n\n\nfunction isMac() {\n return canUseDOM && navigator.platform.startsWith(\"Mac\") && !isTouchDevice();\n}\n\nexport { isApple, isFirefox, isMac, isSafari, isTouchDevice };","import { forwardRef } from 'react';\nimport { hasOwnProperty } from './misc.js';\nimport { jsx } from 'react/jsx-runtime';\n\nfunction isRenderProp(children) {\n return typeof children === \"function\";\n}\n/**\n * Creates a type-safe component with the `as` prop and `React.forwardRef`.\n *\n * @example\n * import { createComponent } from \"ariakit-utils/system\";\n *\n * type Props = {\n * as?: \"div\";\n * customProp?: boolean;\n * };\n *\n * const Component = createComponent(({ customProp, ...props }) => {\n * return
;\n * });\n *\n * \n */\n\n\nfunction createComponent(render) {\n const Role = (props, ref) => render({\n ref,\n ...props\n });\n\n return /*#__PURE__*/forwardRef(Role);\n}\n/**\n * Creates a React element that supports the `as` prop, children as a\n * function (render props) and a `wrapElement` function.\n *\n * @example\n * import { createElement } from \"ariakit-utils/system\";\n *\n * function Component() {\n * const props = {\n * as: \"button\" as const,\n * children: (htmlProps) => ,\n * wrapElement: (element) => {element}
,\n * };\n * return createElement(\"div\", props);\n * }\n */\n\n\nfunction createElement(Type, props) {\n const {\n as: As,\n wrapElement,\n ...rest\n } = props;\n let element;\n\n if (As && typeof As !== \"string\") {\n element = /*#__PURE__*/jsx(As, { ...rest\n });\n } else if (isRenderProp(props.children)) {\n const {\n children,\n ...otherProps\n } = rest;\n element = props.children(otherProps);\n } else if (As) {\n element = /*#__PURE__*/jsx(As, { ...rest\n });\n } else {\n element = /*#__PURE__*/jsx(Type, { ...rest\n });\n }\n\n if (wrapElement) {\n return wrapElement(element);\n }\n\n return element;\n}\n/**\n * Creates a component hook that accepts props and returns props so they can be\n * passed to a React element.\n *\n * @example\n * import { Options, createHook } from \"ariakit-utils/system\";\n *\n * type Props = Options<\"div\"> & {\n * customProp?: boolean;\n * };\n *\n * const useComponent = createHook(({ customProp, ...props }) => {\n * return props;\n * });\n *\n * const props = useComponent({ as: \"button\", customProp: true });\n */\n\n\nfunction createHook(useProps) {\n const useRole = function (props) {\n if (props === void 0) {\n props = {};\n }\n\n const htmlProps = useProps(props);\n const copy = {};\n\n for (const prop in htmlProps) {\n if (hasOwnProperty(htmlProps, prop) && htmlProps[prop] !== undefined) {\n // @ts-expect-error\n copy[prop] = htmlProps[prop];\n }\n }\n\n return copy;\n };\n\n return useRole;\n}\n\nexport { createComponent, createElement, createHook };","import { useRef, useState, useEffect } from 'react';\nimport { isButton, isTextField } from 'ariakit-utils/dom';\nimport { isSelfTarget, queueBeforeEvent, fireClickEvent } from 'ariakit-utils/events';\nimport { useTagName, useEvent, useForkRef } from 'ariakit-utils/hooks';\nimport { queueMicrotask } from 'ariakit-utils/misc';\nimport { isFirefox } from 'ariakit-utils/platform';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useFocusable } from '../focusable/focusable.js';\n\nfunction isNativeClick(event) {\n if (!event.isTrusted) return false; // istanbul ignore next: can't test trusted events yet\n\n const element = event.currentTarget;\n return isButton(element) || element.tagName === \"SUMMARY\" || element.tagName === \"INPUT\" || element.tagName === \"TEXTAREA\" || element.tagName === \"A\" || element.tagName === \"SELECT\";\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component. If the element is not a native clickable element (like a\n * button), the hook will return additional props to make sure it's accessible.\n * @see https://ariakit.org/components/command\n * @example\n * ```jsx\n * const props = useCommand({ as: \"div\" });\n * Accessible button \n * ```\n */\n\n\nconst useCommand = createHook(_ref => {\n let {\n clickOnEnter = true,\n clickOnSpace = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const tagName = useTagName(ref, props.as);\n const [isNativeButton, setIsNativeButton] = useState(() => !!tagName && isButton({\n tagName,\n type: props.type\n }));\n useEffect(() => {\n if (!ref.current) return;\n setIsNativeButton(isButton(ref.current));\n }, []);\n const [active, setActive] = useState(false);\n const activeRef = useRef(false);\n const isDuplicate = (\"data-command\" in props);\n const onKeyDownProp = props.onKeyDown;\n const onKeyDown = useEvent(event => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n const element = event.currentTarget;\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (props.disabled) return;\n if (!isSelfTarget(event)) return;\n if (isTextField(element)) return;\n if (element.isContentEditable) return;\n const isEnter = clickOnEnter && event.key === \"Enter\";\n const isSpace = clickOnSpace && event.key === \" \";\n const shouldPreventEnter = event.key === \"Enter\" && !clickOnEnter;\n const shouldPreventSpace = event.key === \" \" && !clickOnSpace;\n\n if (shouldPreventEnter || shouldPreventSpace) {\n event.preventDefault();\n return;\n }\n\n if (isEnter || isSpace) {\n const nativeClick = isNativeClick(event);\n\n if (isEnter) {\n if (!nativeClick) {\n event.preventDefault();\n const {\n view,\n ...eventInit\n } = event; // Fire a click event instead of calling element.click() directly\n // so we can pass along the modifier state.\n\n const click = () => fireClickEvent(element, eventInit); // If this element is a link with target=\"_blank\", Firefox will\n // block the \"popup\" if the click event is dispatched synchronously\n // or in a microtask. Queueing the event asynchronously fixes that.\n\n\n if (isFirefox()) {\n queueBeforeEvent(element, \"keyup\", click);\n } else {\n queueMicrotask(click);\n }\n }\n } else if (isSpace) {\n activeRef.current = true;\n\n if (!nativeClick) {\n event.preventDefault();\n setActive(true);\n }\n }\n }\n });\n const onKeyUpProp = props.onKeyUp;\n const onKeyUp = useEvent(event => {\n onKeyUpProp == null ? void 0 : onKeyUpProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (props.disabled) return;\n if (event.metaKey) return;\n const isSpace = clickOnSpace && event.key === \" \";\n\n if (activeRef.current && isSpace) {\n activeRef.current = false;\n\n if (!isNativeClick(event)) {\n setActive(false);\n const element = event.currentTarget;\n const {\n view,\n ...eventInit\n } = event;\n queueMicrotask(() => fireClickEvent(element, eventInit));\n }\n }\n });\n props = {\n \"data-command\": \"\",\n \"data-active\": active ? \"\" : undefined,\n type: isNativeButton ? \"button\" : undefined,\n ...props,\n ref: useForkRef(ref, props.ref),\n onKeyDown,\n onKeyUp\n };\n props = useFocusable(props);\n return props;\n});\n/**\n * A component that renders a native clickable element (a button). If another\n * element is passed to the `as` prop, this component will make sure the\n * rendered element is accessible.\n * @see https://ariakit.org/components/command\n * @example\n * ```jsx\n * Accessible button \n * ```\n */\n\nconst Command = createComponent(props => {\n props = useCommand(props);\n return createElement(\"button\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Command.displayName = \"Command\";\n}\n\nexport { Command, useCommand };","import { useRef, useState, useEffect } from 'react';\nimport { isButton } from 'ariakit-utils/dom';\nimport { useTagName, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useCommand } from '../command/command.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component. If the element is not a native button, the hook will\n * return additional props to make sure it's accessible.\n * @see https://ariakit.org/components/button\n * @example\n * ```jsx\n * const props = useButton({ as: \"div\" });\n * Accessible button \n * ```\n */\n\nconst useButton = createHook(props => {\n const ref = useRef(null);\n const tagName = useTagName(ref, props.as || \"button\");\n const [isNativeButton, setIsNativeButton] = useState(() => !!tagName && isButton({\n tagName,\n type: props.type\n }));\n useEffect(() => {\n if (!ref.current) return;\n setIsNativeButton(isButton(ref.current));\n }, []);\n props = {\n role: !isNativeButton && tagName !== \"a\" ? \"button\" : undefined,\n ...props,\n ref: useForkRef(ref, props.ref)\n };\n props = useCommand(props);\n return props;\n});\n/**\n * A component that renders a native accessible button. If another element is\n * passed to the `as` prop, this component will make sure the rendered element\n * is accessible.\n * @see https://ariakit.org/components/button\n * @example\n * ```jsx\n * Accessible button \n * ```\n */\n\nconst Button = createComponent(props => {\n const htmlProps = useButton(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Button.displayName = \"Button\";\n}\n\nexport { Button, useButton };","import { useRef, useEffect, useState } from 'react';\nimport { isButton } from 'ariakit-utils/dom';\nimport { addGlobalEventListener, isPortalEvent, queueBeforeEvent, isSelfTarget, isFocusEventOutside } from 'ariakit-utils/events';\nimport { isFocusable, focusIfNeeded, hasFocus } from 'ariakit-utils/focus';\nimport { useEvent, useSafeLayoutEffect, useTagName, useForkRef } from 'ariakit-utils/hooks';\nimport { queueMicrotask } from 'ariakit-utils/misc';\nimport { isSafari } from 'ariakit-utils/platform';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nconst isSafariBrowser = isSafari();\nconst alwaysFocusVisibleInputTypes = [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\", \"number\", \"date\", \"month\", \"week\", \"time\", \"datetime\", \"datetime-local\"];\n\nfunction isAlwaysFocusVisible(element) {\n const {\n tagName,\n readOnly,\n type\n } = element;\n if (tagName === \"TEXTAREA\" && !readOnly) return true;\n if (tagName === \"SELECT\" && !readOnly) return true;\n\n if (tagName === \"INPUT\" && !readOnly) {\n return alwaysFocusVisibleInputTypes.includes(type);\n }\n\n if (element.isContentEditable) return true;\n return false;\n} // See https://github.com/ariakit/ariakit/issues/1257\n\n\nfunction isAlwaysFocusVisibleDelayed(element) {\n const role = element.getAttribute(\"role\");\n if (role === \"combobox\") return true;\n return false;\n}\n\nfunction getLabels(element) {\n if (\"labels\" in element) {\n return element.labels;\n }\n\n return null;\n}\n\nfunction isNativeCheckboxOrRadio(element) {\n const tagName = element.tagName.toLowerCase();\n\n if (tagName === \"input\" && element.type) {\n return element.type === \"radio\" || element.type === \"checkbox\";\n }\n\n return false;\n}\n\nfunction isNativeTabbable(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\" || tagName === \"a\";\n}\n\nfunction supportsDisabledAttribute(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\";\n}\n\nfunction getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, tabIndexProp) {\n if (!focusable) {\n return tabIndexProp;\n }\n\n if (trulyDisabled) {\n if (nativeTabbable && !supportsDisabled) {\n // Anchor, audio and video tags don't support the `disabled` attribute.\n // We must pass tabIndex={-1} so they don't receive focus on tab.\n return -1;\n } // Elements that support the `disabled` attribute don't need tabIndex.\n\n\n return;\n }\n\n if (nativeTabbable) {\n // If the element is enabled and it's natively tabbable, we don't need to\n // specify a tabIndex attribute unless it's explicitly set by the user.\n return tabIndexProp;\n } // If the element is enabled and is not natively tabbable, we have to\n // fallback tabIndex={0}.\n\n\n return tabIndexProp || 0;\n}\n\nfunction useDisableEvent(onEvent, disabled) {\n return useEvent(event => {\n onEvent == null ? void 0 : onEvent(event);\n if (event.defaultPrevented) return;\n\n if (disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n });\n} // isKeyboardModality should be true by defaault.\n\n\nlet isKeyboardModality = true;\n\nfunction onGlobalMouseDown(event) {\n const target = event.target;\n\n if (target && \"hasAttribute\" in target) {\n // If the target element is already focus-visible, we keep the keyboard\n // modality.\n if (!target.hasAttribute(\"data-focus-visible\")) {\n isKeyboardModality = false;\n }\n }\n}\n\nfunction onGlobalKeyDown(event) {\n if (event.metaKey) return;\n if (event.ctrlKey) return;\n isKeyboardModality = true;\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that can be focused.\n * @see https://ariakit.org/components/focusable\n * @example\n * ```jsx\n * const props = useFocusable();\n * Focusable \n * ```\n */\n\n\nconst useFocusable = createHook(_ref => {\n let {\n focusable = true,\n accessibleWhenDisabled,\n autoFocus,\n onFocusVisible,\n ...props\n } = _ref;\n const ref = useRef(null); // Add global event listeners to determine whether the user is using a\n // keyboard to navigate the site or not.\n\n useEffect(() => {\n if (!focusable) return;\n addGlobalEventListener(\"mousedown\", onGlobalMouseDown, true);\n addGlobalEventListener(\"keydown\", onGlobalKeyDown, true);\n }, [focusable]); // Safari and Firefox on Apple devices don't focus on checkboxes or radio\n // buttons when their labels are clicked. This effect will make sure the\n // focusable element is focused on label click.\n\n if (isSafariBrowser) {\n useEffect(() => {\n if (!focusable) return;\n const element = ref.current;\n if (!element) return;\n if (!isNativeCheckboxOrRadio(element)) return;\n const labels = getLabels(element);\n if (!labels) return;\n\n const onMouseUp = () => queueMicrotask(() => element.focus());\n\n labels.forEach(label => label.addEventListener(\"mouseup\", onMouseUp));\n return () => {\n labels.forEach(label => label.removeEventListener(\"mouseup\", onMouseUp));\n };\n }, [focusable]);\n }\n\n const disabled = focusable && props.disabled;\n const trulyDisabled = !!disabled && !accessibleWhenDisabled;\n const [focusVisible, setFocusVisible] = useState(false); // When the focusable element is disabled, it doesn't trigger a blur event\n // so we can't set focusVisible to false there. Instead, we have to do it\n // here by checking the element's disabled attribute.\n\n useEffect(() => {\n if (!focusable) return;\n\n if (trulyDisabled && focusVisible) {\n setFocusVisible(false);\n }\n }, [focusable, trulyDisabled, focusVisible]); // When an element that has focus becomes hidden, it doesn't trigger a blur\n // event so we can't set focusVisible to false there. We observe the element\n // and check if it's still focusable. Otherwise, we set focusVisible to\n // false.\n\n useEffect(() => {\n if (!focusable) return;\n if (!focusVisible) return;\n const element = ref.current;\n if (!element) return;\n if (typeof IntersectionObserver === \"undefined\") return;\n const observer = new IntersectionObserver(() => {\n if (!isFocusable(element)) {\n setFocusVisible(false);\n }\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [focusable, focusVisible]); // Disable events when the element is disabled.\n\n const onKeyPressCapture = useDisableEvent(props.onKeyPressCapture, disabled);\n const onMouseDownCapture = useDisableEvent(props.onMouseDownCapture, disabled);\n const onClickCapture = useDisableEvent(props.onClickCapture, disabled);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent(event => {\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n const element = event.currentTarget; // Safari doesn't focus on buttons on mouse down like other\n // browsers/platforms. Instead, it focuses on the closest focusable\n // ancestor element, which is ultimately the body element. So we make sure\n // to give focus to this Focusable element on mouse down so it works\n // consistently across browsers.\n\n if (!isSafariBrowser) return;\n if (isPortalEvent(event)) return;\n if (!isButton(element) && !isNativeCheckboxOrRadio(element)) return; // In future versions os Safari, it may change this behavior and start\n // focusing on buttons on mouse down. To account for that, we check if the\n // element has received focus before.\n\n let receivedFocus = false;\n\n const onFocus = () => {\n receivedFocus = true;\n };\n\n const options = {\n capture: true,\n once: true\n };\n element.addEventListener(\"focusin\", onFocus, options); // We can't focus right away after on mouse down, otherwise it would\n // prevent drag events from happening. So we queue the focus to the next\n // animation frame, but always before the next mouseup event. The mouseup\n // event might happen before the next animation frame on touch devices or\n // by tapping on a MacBook's trackpad, for example.\n\n queueBeforeEvent(element, \"mouseup\", () => {\n element.removeEventListener(\"focusin\", onFocus, true);\n if (receivedFocus) return;\n focusIfNeeded(element);\n });\n });\n\n const handleFocusVisible = (event, currentTarget) => {\n if (currentTarget) {\n event.currentTarget = currentTarget;\n }\n\n onFocusVisible == null ? void 0 : onFocusVisible(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n const element = event.currentTarget;\n if (!element) return; // Some extensions like 1password dispatches some keydown events on\n // autofill and immediately moves focus to the next field. That's why we\n // need to check if the current element is still focused.\n\n if (!hasFocus(element)) return;\n setFocusVisible(true);\n };\n\n const onKeyDownCaptureProp = props.onKeyDownCapture;\n const onKeyDownCapture = useEvent(event => {\n onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (focusVisible) return;\n if (event.metaKey) return;\n if (event.altKey) return;\n if (event.ctrlKey) return;\n if (!isSelfTarget(event)) return;\n const element = event.currentTarget;\n queueMicrotask(() => handleFocusVisible(event, element));\n });\n const onFocusCaptureProp = props.onFocusCapture;\n const onFocusCapture = useEvent(event => {\n onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n\n if (!isSelfTarget(event)) {\n setFocusVisible(false);\n return;\n }\n\n const element = event.currentTarget;\n\n const applyFocusVisible = () => handleFocusVisible(event, element);\n\n if (isKeyboardModality || isAlwaysFocusVisible(event.target)) {\n queueMicrotask(applyFocusVisible);\n } // See https://github.com/ariakit/ariakit/issues/1257\n else if (isAlwaysFocusVisibleDelayed(event.target)) {\n queueBeforeEvent(event.target, \"focusout\", applyFocusVisible);\n } else {\n setFocusVisible(false);\n }\n });\n const onBlurProp = props.onBlur; // Note: Can't use onBlurCapture here otherwise it will not work with\n // CompositeItem's with the virtualFocus state set to true.\n\n const onBlur = useEvent(event => {\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (!focusable) return;\n\n if (isFocusEventOutside(event)) {\n setFocusVisible(false);\n }\n }); // The native autoFocus prop is problematic in many ways. For example, when\n // an element has the native autofocus attribute, the focus event will be\n // triggered before React effects (even layout effects) and before refs are\n // assigned. This means we won't have access to the element's ref or\n // anything else that's set up by React effects on the onFocus event. So we\n // don't pass the autoFocus prop to the element and instead manually focus\n // the element when it's mounted. The order in which this effect runs also\n // matters. It must be declared here after all the event callbacks above so\n // the event callback effects run before this one. See\n // https://twitter.com/diegohaz/status/1408180632933388289\n\n useSafeLayoutEffect(() => {\n if (!focusable) return;\n\n if (autoFocus) {\n var _ref$current;\n\n (_ref$current = ref.current) == null ? void 0 : _ref$current.focus();\n }\n }, [focusable, autoFocus]);\n const tagName = useTagName(ref, props.as);\n const nativeTabbable = focusable && isNativeTabbable(tagName);\n const supportsDisabled = focusable && supportsDisabledAttribute(tagName);\n const style = trulyDisabled ? {\n pointerEvents: \"none\",\n ...props.style\n } : props.style;\n props = {\n \"data-focus-visible\": focusable && focusVisible ? \"\" : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n ...props,\n ref: useForkRef(ref, props.ref),\n style,\n tabIndex: getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, props.tabIndex),\n disabled: supportsDisabled && trulyDisabled ? true : undefined,\n // TODO: Test Focusable contentEditable.\n contentEditable: disabled ? undefined : props.contentEditable,\n onKeyPressCapture,\n onClickCapture,\n onMouseDownCapture,\n onMouseDown,\n onKeyDownCapture,\n onFocusCapture,\n onBlur\n };\n return props;\n});\n/**\n * A component that renders an element that can be focused.\n * @see https://ariakit.org/components/focusable\n * @example\n * ```jsx\n * Focusable \n * ```\n */\n\nconst Focusable = createComponent(props => {\n props = useFocusable(props);\n return createElement(\"div\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Focusable.displayName = \"Focusable\";\n}\n\nexport { Focusable, useFocusable };","const set = require('regenerate')();\n\nset.addRange(0x0, 0x7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x46).addRange(0x61, 0x66);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x345, 0x37F, 0x386, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x9B2, 0x9CE, 0x9D7, 0x9FC, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xD4E, 0xDBD, 0xDD6, 0xE4D, 0xE84, 0xEA5, 0xEC6, 0xECD, 0xF00, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8C5, 0xA8FB, 0xA9CF, 0xAAC0, 0xAAC2, 0xFB3E, 0x10808, 0x1083C, 0x10F27, 0x110C2, 0x11176, 0x111DA, 0x111DC, 0x11237, 0x1123E, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11640, 0x11644, 0x116B8, 0x11909, 0x119E1, 0x11A9D, 0x11C40, 0x11D3A, 0x11D43, 0x11D98, 0x11FB0, 0x16FE3, 0x1BC9E, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E947, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5B0, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x657).addRange(0x659, 0x65F).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6E1, 0x6E8).addRange(0x6ED, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x710, 0x73F).addRange(0x74D, 0x7B1).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x817).addRange(0x81A, 0x82C).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x8D4, 0x8DF).addRange(0x8E3, 0x8E9).addRange(0x8F0, 0x93B).addRange(0x93D, 0x94C).addRange(0x94E, 0x950).addRange(0x955, 0x963).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8);\nset.addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BD, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9F0, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4C).addRange(0xA59, 0xA5C).addRange(0xA70, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE3).addRange(0xAF9, 0xAFC).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3D, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB56, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A);\nset.addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC00, 0xC03).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3D, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4C).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCC).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3D, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB9).addRange(0xEBB, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF81).addRange(0xF88, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1036).addRange(0x103B, 0x103F).addRange(0x1050, 0x108F).addRange(0x109A, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1713).addRange(0x171F, 0x1733).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17B3).addRange(0x17B6, 0x17C8).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E);\nset.addRange(0x1920, 0x192B).addRange(0x1930, 0x1938).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A61, 0x1A74).addRange(0x1ABF, 0x1AC0).addRange(0x1ACC, 0x1ACE).addRange(0x1B00, 0x1B33).addRange(0x1B35, 0x1B43).addRange(0x1B45, 0x1B4C).addRange(0x1B80, 0x1BA9).addRange(0x1BAC, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1BE7, 0x1BF1).addRange(0x1C00, 0x1C36).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1DE7, 0x1DF4).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149);\nset.addRange(0x2160, 0x2188).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA674, 0xA67B).addRange(0xA67F, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA805).addRange(0xA807, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FF).addRange(0xA90A, 0xA92A).addRange(0xA930, 0xA952);\nset.addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9B2).addRange(0xA9B4, 0xA9BF).addRange(0xA9E0, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAABE).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D);\nset.addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7);\nset.addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11045).addRange(0x11071, 0x11075).addRange(0x11082, 0x110B8).addRange(0x110D0, 0x110E8).addRange(0x11100, 0x11132).addRange(0x11144, 0x11147).addRange(0x11150, 0x11172).addRange(0x11180, 0x111BF).addRange(0x111C1, 0x111C4).addRange(0x111CE, 0x111CF).addRange(0x11200, 0x11211).addRange(0x11213, 0x11234).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112E8).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133D, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134C).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11441).addRange(0x11443, 0x11445).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114C1).addRange(0x114C4, 0x114C5);\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115BE).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x1163E).addRange(0x11680, 0x116B5).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172A).addRange(0x11740, 0x11746).addRange(0x11800, 0x11838).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193C).addRange(0x1193F, 0x11942).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119DF).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A32).addRange(0x11A35, 0x11A3E).addRange(0x11A50, 0x11A97).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C3E).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D41).addRange(0x11D46, 0x11D47).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D96).addRange(0x11EE0, 0x11EF6).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E);\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8);\nset.addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x0, 0x10FFFF);\nmodule.exports = set;","const set = require('regenerate')(0x38C, 0x85E, 0x9B2, 0x9D7, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1940, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA7D3, 0xFB3E, 0xFDCF, 0xFEFF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x110CD, 0x11288, 0x11350, 0x11357, 0x11909, 0x11D3A, 0x11FB0, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E2FF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0, 0xE0001);\n\nset.addRange(0x0, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x600, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x82D).addRange(0x830, 0x83E).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0);\nset.addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9);\nset.addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE3A).addRange(0xE3F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5);\nset.addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1736).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A1B).addRange(0x1A1E, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E).addRange(0x1B80, 0x1BF3).addRange(0x1BFC, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CD0, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D);\nset.addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x2000, 0x2064).addRange(0x2066, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x20D0, 0x20F0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3000, 0x303F).addRange(0x3041, 0x3096).addRange(0x3099, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31F0, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1);\nset.addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA82C).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9).addRange(0xA8E0, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAAC2).addRange(0xAADB, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xD800, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFE19).addRange(0xFE20, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE);\nset.addRange(0xFFF9, 0xFFFD).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FD).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E0, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B);\nset.addRange(0x1091F, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F27).addRange(0x10F30, 0x10F59).addRange(0x10F70, 0x10F89).addRange(0x10FB0, 0x10FCB).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075).addRange(0x1107F, 0x110C2).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147).addRange(0x11150, 0x11176).addRange(0x11180, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1123E).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112EA);\nset.addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746).addRange(0x11800, 0x1183B).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4).addRange(0x11A00, 0x11A47).addRange(0x11A50, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06);\nset.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF8).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x1342E).addRange(0x13430, 0x13438).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5).addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C);\nset.addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D1EA).addRange(0x1D200, 0x1D245).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C);\nset.addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD);\nmodule.exports = set;","const set = require('regenerate')(0x61C);\n\nset.addRange(0x200E, 0x200F).addRange(0x202A, 0x202E).addRange(0x2066, 0x2069);\nmodule.exports = set;","const set = require('regenerate')(0x3C, 0x3E, 0x5B, 0x5D, 0x7B, 0x7D, 0xAB, 0xBB, 0x2140, 0x2211, 0x2224, 0x2226, 0x2239, 0x2262, 0x2298, 0x27C0, 0x29B8, 0x29C9, 0x29E1, 0x2A24, 0x2A26, 0x2A29, 0x2ADC, 0x2ADE, 0x2AF3, 0x2AFD, 0x2BFE, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D, 0x1D6DB, 0x1D715, 0x1D74F, 0x1D789, 0x1D7C3);\n\nset.addRange(0x28, 0x29).addRange(0xF3A, 0xF3D).addRange(0x169B, 0x169C).addRange(0x2039, 0x203A).addRange(0x2045, 0x2046).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2201, 0x2204).addRange(0x2208, 0x220D).addRange(0x2215, 0x2216).addRange(0x221A, 0x221D).addRange(0x221F, 0x2222).addRange(0x222B, 0x2233).addRange(0x223B, 0x224C).addRange(0x2252, 0x2255).addRange(0x225F, 0x2260).addRange(0x2264, 0x226B).addRange(0x226E, 0x228C).addRange(0x228F, 0x2292).addRange(0x22A2, 0x22A3).addRange(0x22A6, 0x22B8).addRange(0x22BE, 0x22BF).addRange(0x22C9, 0x22CD).addRange(0x22D0, 0x22D1).addRange(0x22D6, 0x22ED).addRange(0x22F0, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C3, 0x27C6).addRange(0x27C8, 0x27C9).addRange(0x27CB, 0x27CD).addRange(0x27D3, 0x27D6).addRange(0x27DC, 0x27DE).addRange(0x27E2, 0x27EF).addRange(0x2983, 0x2998).addRange(0x299B, 0x29A0).addRange(0x29A2, 0x29AF).addRange(0x29C0, 0x29C5).addRange(0x29CE, 0x29D2).addRange(0x29D4, 0x29D5).addRange(0x29D8, 0x29DC).addRange(0x29E3, 0x29E5).addRange(0x29E8, 0x29E9).addRange(0x29F4, 0x29F9).addRange(0x29FC, 0x29FD).addRange(0x2A0A, 0x2A1C).addRange(0x2A1E, 0x2A21).addRange(0x2A2B, 0x2A2E).addRange(0x2A34, 0x2A35);\nset.addRange(0x2A3C, 0x2A3E).addRange(0x2A57, 0x2A58).addRange(0x2A64, 0x2A65).addRange(0x2A6A, 0x2A6D).addRange(0x2A6F, 0x2A70).addRange(0x2A73, 0x2A74).addRange(0x2A79, 0x2AA3).addRange(0x2AA6, 0x2AAD).addRange(0x2AAF, 0x2AD6).addRange(0x2AE2, 0x2AE6).addRange(0x2AEC, 0x2AEE).addRange(0x2AF7, 0x2AFB).addRange(0x2E02, 0x2E05).addRange(0x2E09, 0x2E0A).addRange(0x2E0C, 0x2E0D).addRange(0x2E1C, 0x2E1D).addRange(0x2E20, 0x2E29).addRange(0x2E55, 0x2E5C).addRange(0x3008, 0x3011).addRange(0x3014, 0x301B).addRange(0xFE59, 0xFE5E).addRange(0xFE64, 0xFE65).addRange(0xFF08, 0xFF09).addRange(0xFF5F, 0xFF60).addRange(0xFF62, 0xFF63);\nmodule.exports = set;","const set = require('regenerate')(0x27, 0x2E, 0x3A, 0x5E, 0x60, 0xA8, 0xAD, 0xAF, 0xB4, 0x37A, 0x387, 0x559, 0x55F, 0x5BF, 0x5C7, 0x5F4, 0x61C, 0x640, 0x670, 0x70F, 0x711, 0x7FA, 0x7FD, 0x888, 0x93A, 0x93C, 0x94D, 0x971, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xEC6, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x10FC, 0x17C6, 0x17D7, 0x17DD, 0x1843, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1AA7, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x1D78, 0x1FBD, 0x2024, 0x2027, 0x2071, 0x207F, 0x2D6F, 0x2D7F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9CF, 0xAA43, 0xAA4C, 0xAA70, 0xAA7C, 0xAAB0, 0xAAC1, 0xAADD, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0xFE13, 0xFE52, 0xFE55, 0xFEFF, 0xFF07, 0xFF0E, 0xFF1A, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110BD, 0x110C2, 0x110CD, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x16F4F, 0x1DA75, 0x1DA84, 0x1E2AE, 0xE0001);\n\nset.addRange(0xB7, 0xB8).addRange(0x2B0, 0x36F).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x600, 0x605).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DD).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x816, 0x82D).addRange(0x859, 0x85B).addRange(0x890, 0x891).addRange(0x898, 0x89F).addRange(0x8C9, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63);\nset.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE46, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180F).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0);\nset.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x200B, 0x200F).addRange(0x2018, 0x2019).addRange(0x202A, 0x202E).addRange(0x2060, 0x2064).addRange(0x2066, 0x206F).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20F0).addRange(0x2C7C, 0x2C7D).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3031, 0x3035).addRange(0x3099, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69C, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xA9E5, 0xA9E6).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xAAF3, 0xAAF4).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B);\nset.addRange(0xFBB2, 0xFBC2).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0xFFF9, 0xFFFB).addRange(0x10376, 0x1037A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B);\nset.addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x13430, 0x13438).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1BC9D, 0x1BC9E).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D173, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nset.addRange(0x1E130, 0x1E13D).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94B).addRange(0x1F3FB, 0x1F3FF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0x10780, 0x1D4A2, 0x1D4BB, 0x1D546);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149);\nset.addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69D).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514);\nset.addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E900, 0x1E943).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x345, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D1).addRange(0x3D5, 0x3D6).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4);\nset.addRange(0x1FB7, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC7, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x1BF, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1D79, 0x1D7D, 0x1D8E, 0x1E9E, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2126, 0x2132, 0x214E, 0x2D27, 0x2D2D, 0xAB53);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x137).addRange(0x139, 0x18C).addRange(0x18E, 0x19A).addRange(0x19C, 0x1A9).addRange(0x1AC, 0x1B9).addRange(0x1BC, 0x1BD).addRange(0x1C4, 0x220).addRange(0x222, 0x233).addRange(0x23A, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3D1).addRange(0x3D5, 0x3F5).addRange(0x3F7, 0x3FB).addRange(0x3FD, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x561, 0x587).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E00, 0x1E9B).addRange(0x1EA0, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC);\nset.addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2C70).addRange(0x2C72, 0x2C73).addRange(0x2C75, 0x2C76).addRange(0x2C7E, 0x2CE3).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA72F).addRange(0xA732, 0xA76F).addRange(0xA779, 0xA787).addRange(0xA78B, 0xA78D).addRange(0xA790, 0xA794).addRange(0xA796, 0xA7AE).addRange(0xA7B0, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D6, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1E900, 0x1E943);\nset;\nmodule.exports = set;","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F88, 0x1F8F).addRange(0x1F98, 0x1F9F).addRange(0x1FA8, 0x1FAF).addRange(0x1FB8, 0x1FBC).addRange(0x1FC8, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFC).addRange(0x212A, 0x212B);\nset.addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921);\nmodule.exports = set;","const set = require('regenerate')(0xA0, 0xA8, 0xAA, 0xAD, 0xAF, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x136, 0x139, 0x13B, 0x13D, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x34F, 0x370, 0x372, 0x374, 0x376, 0x37A, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x61C, 0x9DF, 0xA33, 0xA36, 0xA5E, 0xE33, 0xEB3, 0xF0C, 0xF43, 0xF4D, 0xF52, 0xF57, 0xF5C, 0xF69, 0xF73, 0xF81, 0xF93, 0xF9D, 0xFA2, 0xFA7, 0xFAC, 0xFB9, 0x10C7, 0x10CD, 0x10FC, 0x1D78, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x1F71, 0x1F73, 0x1F75, 0x1F77, 0x1F79, 0x1F7B, 0x1F7D, 0x1FD3, 0x1FE3, 0x2011, 0x2017, 0x203C, 0x203E, 0x2057, 0x20A8, 0x2124, 0x2126, 0x2128, 0x2183, 0x2189, 0x2A0C, 0x2ADC, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0x2D6F, 0x2E9F, 0x2EF3, 0x3000, 0x3036, 0x309F, 0x30FF, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA770, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xAB69, 0xFA10, 0xFA12, 0xFA20, 0xFA22, 0xFB1D, 0xFB3E, 0xFE74, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F190);\n\nset.addRange(0x41, 0x5A).addRange(0xB2, 0xB5).addRange(0xB8, 0xBA).addRange(0xBC, 0xBE).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x132, 0x134).addRange(0x13F, 0x141).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1CD).addRange(0x1F1, 0x1F4).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x2B0, 0x2B8).addRange(0x2D8, 0x2DD).addRange(0x2E0, 0x2E4).addRange(0x340, 0x341).addRange(0x343, 0x345).addRange(0x37E, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D6).addRange(0x3F0, 0x3F2).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x675, 0x678).addRange(0x958, 0x95F).addRange(0x9DC, 0x9DD).addRange(0xA59, 0xA5B).addRange(0xB5C, 0xB5D).addRange(0xEDC, 0xEDD);\nset.addRange(0xF75, 0xF79).addRange(0x10A0, 0x10C5).addRange(0x115F, 0x1160).addRange(0x13F8, 0x13FD).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D2C, 0x1D2E).addRange(0x1D30, 0x1D3A).addRange(0x1D3C, 0x1D4D).addRange(0x1D4F, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4).addRange(0x1FB7, 0x1FC4).addRange(0x1FC7, 0x1FCF).addRange(0x1FD8, 0x1FDB).addRange(0x1FDD, 0x1FDF).addRange(0x1FE8, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFE).addRange(0x2000, 0x200F).addRange(0x2024, 0x2026).addRange(0x202A, 0x202F).addRange(0x2033, 0x2034).addRange(0x2036, 0x2037).addRange(0x2047, 0x2049).addRange(0x205F, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x2100, 0x2103).addRange(0x2105, 0x2107).addRange(0x2109, 0x2113).addRange(0x2115, 0x2116).addRange(0x2119, 0x211D).addRange(0x2120, 0x2122).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213B, 0x2140).addRange(0x2145, 0x2149).addRange(0x2150, 0x217F).addRange(0x222C, 0x222D);\nset.addRange(0x222F, 0x2230).addRange(0x2329, 0x232A).addRange(0x2460, 0x24EA).addRange(0x2A74, 0x2A76).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7C, 0x2C80).addRange(0x2F00, 0x2FD5).addRange(0x3038, 0x303A).addRange(0x309B, 0x309C).addRange(0x3131, 0x318E).addRange(0x3192, 0x319F).addRange(0x3200, 0x321E).addRange(0x3220, 0x3247).addRange(0x3250, 0x327E).addRange(0x3280, 0x33FF).addRange(0xA69C, 0xA69D).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7F2, 0xA7F5).addRange(0xA7F8, 0xA7F9).addRange(0xAB5C, 0xAB5F).addRange(0xAB70, 0xABBF).addRange(0xF900, 0xFA0D).addRange(0xFA15, 0xFA1E).addRange(0xFA25, 0xFA26).addRange(0xFA2A, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFC).addRange(0xFE00, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE72).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7);\nset.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF0, 0xFFF8).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10781, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D15E, 0x1D164).addRange(0x1D173, 0x1D17A).addRange(0x1D1BB, 0x1D1C0).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E900, 0x1E921).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72);\nset.addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F100, 0x1F10A).addRange(0x1F110, 0x1F12E).addRange(0x1F130, 0x1F14F).addRange(0x1F16A, 0x1F16C).addRange(0x1F200, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1FBF0, 0x1FBF9).addRange(0x2F800, 0x2FA1D).addRange(0xE0000, 0xE0FFF);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1C4, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C6, 0x1C7).addRange(0x1C9, 0x1CA).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F1).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4);\nset.addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBC, 0x1FBE, 0x1FCC, 0x1FFC, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C5, 0x1C6).addRange(0x1C8, 0x1C9).addRange(0x1CB, 0x1CC).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x1F2, 0x1F3).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7);\nset.addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2053, 0x207B, 0x208B, 0x2212, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD);\n\nset.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32);\nmodule.exports = set;","const set = require('regenerate')(0xAD, 0x34F, 0x61C, 0x3164, 0xFEFF, 0xFFA0);\n\nset.addRange(0x115F, 0x1160).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0xFE00, 0xFE0F).addRange(0xFFF0, 0xFFF8).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D173, 0x1D17A).addRange(0xE0000, 0xE0FFF);\nmodule.exports = set;","const set = require('regenerate')(0x149, 0x673, 0xF77, 0xF79, 0xE0001);\n\nset.addRange(0x17A3, 0x17A4).addRange(0x206A, 0x206F).addRange(0x2329, 0x232A);\nmodule.exports = set;","const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0x37A, 0x559, 0x5BF, 0x5C4, 0x93C, 0x94D, 0x971, 0x9BC, 0x9CD, 0xA3C, 0xA4D, 0xABC, 0xACD, 0xB3C, 0xB4D, 0xB55, 0xBCD, 0xC3C, 0xC4D, 0xCBC, 0xCCD, 0xD4D, 0xDCA, 0xE4E, 0xEBA, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1037, 0x108F, 0x17DD, 0x1A7F, 0x1B34, 0x1B44, 0x1CED, 0x1CF4, 0x1FBD, 0x2E2F, 0x30FC, 0xA66F, 0xA67F, 0xA8C4, 0xA953, 0xA9B3, 0xA9C0, 0xA9E5, 0xAAF6, 0xFB1E, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x102E0, 0x11046, 0x11070, 0x11173, 0x111C0, 0x1133C, 0x1134D, 0x11442, 0x11446, 0x1163F, 0x1172B, 0x11943, 0x119E0, 0x11A34, 0x11A47, 0x11A99, 0x11C3F, 0x11D42, 0x11D97, 0x1E2AE);\n\nset.addRange(0xB7, 0xB8).addRange(0x2B0, 0x34E).addRange(0x350, 0x357).addRange(0x35D, 0x362).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x487).addRange(0x591, 0x5A1).addRange(0x5A3, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x64B, 0x652).addRange(0x657, 0x658).addRange(0x6DF, 0x6E0).addRange(0x6E5, 0x6E6).addRange(0x6EA, 0x6EC).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x818, 0x819).addRange(0x898, 0x89F).addRange(0x8C9, 0x8D2).addRange(0x8E3, 0x8FE).addRange(0x951, 0x954).addRange(0xAFD, 0xAFF).addRange(0xD3B, 0xD3C).addRange(0xE47, 0xE4C).addRange(0xEC8, 0xECC).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF82, 0xF84).addRange(0xF86, 0xF87).addRange(0x1039, 0x103A).addRange(0x1063, 0x1064).addRange(0x1069, 0x106D).addRange(0x1087, 0x108D).addRange(0x109A, 0x109B).addRange(0x135D, 0x135F).addRange(0x1714, 0x1715).addRange(0x17C9, 0x17D3).addRange(0x1939, 0x193B).addRange(0x1A75, 0x1A7C).addRange(0x1AB0, 0x1ABE).addRange(0x1AC1, 0x1ACB).addRange(0x1B6B, 0x1B73).addRange(0x1BAA, 0x1BAB).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1DC4, 0x1DCF);\nset.addRange(0x1DF5, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x2CEF, 0x2CF1).addRange(0x302A, 0x302F).addRange(0x3099, 0x309C).addRange(0xA67C, 0xA67D).addRange(0xA69C, 0xA69D).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F8, 0xA7F9).addRange(0xA8E0, 0xA8F1).addRange(0xA92B, 0xA92E).addRange(0xAA7B, 0xAA7D).addRange(0xAABF, 0xAAC2).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B).addRange(0xABEC, 0xABED).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10AE5, 0x10AE6).addRange(0x10D22, 0x10D27).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x110B9, 0x110BA).addRange(0x11133, 0x11134).addRange(0x111CA, 0x111CC).addRange(0x11235, 0x11236).addRange(0x112E9, 0x112EA).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x114C2, 0x114C3).addRange(0x115BF, 0x115C0).addRange(0x116B6, 0x116B7).addRange(0x11839, 0x1183A).addRange(0x1193D, 0x1193E).addRange(0x11D44, 0x11D45).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F9F).addRange(0x16FF0, 0x16FF1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE);\nset.addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E946).addRange(0x1E948, 0x1E94A);\nmodule.exports = set;","const set = require('regenerate')(0x23, 0x2A, 0xA9, 0xAE, 0x203C, 0x2049, 0x2122, 0x2139, 0x2328, 0x23CF, 0x24C2, 0x25B6, 0x25C0, 0x260E, 0x2611, 0x2618, 0x261D, 0x2620, 0x2626, 0x262A, 0x2640, 0x2642, 0x2663, 0x2668, 0x267B, 0x2699, 0x26A7, 0x26C8, 0x26D1, 0x26FD, 0x2702, 0x2705, 0x270F, 0x2712, 0x2714, 0x2716, 0x271D, 0x2721, 0x2728, 0x2744, 0x2747, 0x274C, 0x274E, 0x2757, 0x27A1, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x3030, 0x303D, 0x3297, 0x3299, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F21A, 0x1F22F, 0x1F587, 0x1F590, 0x1F5A8, 0x1F5BC, 0x1F5E1, 0x1F5E3, 0x1F5E8, 0x1F5EF, 0x1F5F3, 0x1F6E9, 0x1F6F0, 0x1F7F0);\n\nset.addRange(0x30, 0x39).addRange(0x2194, 0x2199).addRange(0x21A9, 0x21AA).addRange(0x231A, 0x231B).addRange(0x23E9, 0x23F3).addRange(0x23F8, 0x23FA).addRange(0x25AA, 0x25AB).addRange(0x25FB, 0x25FE).addRange(0x2600, 0x2604).addRange(0x2614, 0x2615).addRange(0x2622, 0x2623).addRange(0x262E, 0x262F).addRange(0x2638, 0x263A).addRange(0x2648, 0x2653).addRange(0x265F, 0x2660).addRange(0x2665, 0x2666).addRange(0x267E, 0x267F).addRange(0x2692, 0x2697).addRange(0x269B, 0x269C).addRange(0x26A0, 0x26A1).addRange(0x26AA, 0x26AB).addRange(0x26B0, 0x26B1).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26CE, 0x26CF).addRange(0x26D3, 0x26D4).addRange(0x26E9, 0x26EA).addRange(0x26F0, 0x26F5).addRange(0x26F7, 0x26FA).addRange(0x2708, 0x270D).addRange(0x2733, 0x2734).addRange(0x2753, 0x2755).addRange(0x2763, 0x2764).addRange(0x2795, 0x2797).addRange(0x2934, 0x2935).addRange(0x2B05, 0x2B07).addRange(0x2B1B, 0x2B1C).addRange(0x1F170, 0x1F171).addRange(0x1F17E, 0x1F17F).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F232, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F321).addRange(0x1F324, 0x1F393).addRange(0x1F396, 0x1F397).addRange(0x1F399, 0x1F39B).addRange(0x1F39E, 0x1F3F0).addRange(0x1F3F3, 0x1F3F5).addRange(0x1F3F7, 0x1F4FD);\nset.addRange(0x1F4FF, 0x1F53D).addRange(0x1F549, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F56F, 0x1F570).addRange(0x1F573, 0x1F57A).addRange(0x1F58A, 0x1F58D).addRange(0x1F595, 0x1F596).addRange(0x1F5A4, 0x1F5A5).addRange(0x1F5B1, 0x1F5B2).addRange(0x1F5C2, 0x1F5C4).addRange(0x1F5D1, 0x1F5D3).addRange(0x1F5DC, 0x1F5DE).addRange(0x1F5FA, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6CB, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DD, 0x1F6E5).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F3, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6);\nmodule.exports = set;","const set = require('regenerate')(0x23, 0x2A, 0x200D, 0x20E3, 0xFE0F);\n\nset.addRange(0x30, 0x39).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F3FB, 0x1F3FF).addRange(0x1F9B0, 0x1F9B3).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1F3FB, 0x1F3FF);\nmodule.exports = set;","const set = require('regenerate')(0x261D, 0x26F9, 0x1F385, 0x1F3C7, 0x1F47C, 0x1F48F, 0x1F491, 0x1F4AA, 0x1F57A, 0x1F590, 0x1F6A3, 0x1F6C0, 0x1F6CC, 0x1F90C, 0x1F90F, 0x1F926, 0x1F977, 0x1F9BB);\n\nset.addRange(0x270A, 0x270D).addRange(0x1F3C2, 0x1F3C4).addRange(0x1F3CA, 0x1F3CC).addRange(0x1F442, 0x1F443).addRange(0x1F446, 0x1F450).addRange(0x1F466, 0x1F478).addRange(0x1F481, 0x1F483).addRange(0x1F485, 0x1F487).addRange(0x1F574, 0x1F575).addRange(0x1F595, 0x1F596).addRange(0x1F645, 0x1F647).addRange(0x1F64B, 0x1F64F).addRange(0x1F6B4, 0x1F6B6).addRange(0x1F918, 0x1F91F).addRange(0x1F930, 0x1F939).addRange(0x1F93C, 0x1F93E).addRange(0x1F9B5, 0x1F9B6).addRange(0x1F9B8, 0x1F9B9).addRange(0x1F9CD, 0x1F9CF).addRange(0x1F9D1, 0x1F9DD).addRange(0x1FAC3, 0x1FAC5).addRange(0x1FAF0, 0x1FAF6);\nmodule.exports = set;","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\n\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DD, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6);\nset;\nmodule.exports = set;","const set = require('regenerate')(0xA9, 0xAE, 0x203C, 0x2049, 0x2122, 0x2139, 0x2328, 0x2388, 0x23CF, 0x24C2, 0x25B6, 0x25C0, 0x2714, 0x2716, 0x271D, 0x2721, 0x2728, 0x2744, 0x2747, 0x274C, 0x274E, 0x2757, 0x27A1, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x3030, 0x303D, 0x3297, 0x3299, 0x1F12F, 0x1F18E, 0x1F21A, 0x1F22F);\n\nset.addRange(0x2194, 0x2199).addRange(0x21A9, 0x21AA).addRange(0x231A, 0x231B).addRange(0x23E9, 0x23F3).addRange(0x23F8, 0x23FA).addRange(0x25AA, 0x25AB).addRange(0x25FB, 0x25FE).addRange(0x2600, 0x2605).addRange(0x2607, 0x2612).addRange(0x2614, 0x2685).addRange(0x2690, 0x2705).addRange(0x2708, 0x2712).addRange(0x2733, 0x2734).addRange(0x2753, 0x2755).addRange(0x2763, 0x2767).addRange(0x2795, 0x2797).addRange(0x2934, 0x2935).addRange(0x2B05, 0x2B07).addRange(0x2B1B, 0x2B1C).addRange(0x1F000, 0x1F0FF).addRange(0x1F10D, 0x1F10F).addRange(0x1F16C, 0x1F171).addRange(0x1F17E, 0x1F17F).addRange(0x1F191, 0x1F19A).addRange(0x1F1AD, 0x1F1E5).addRange(0x1F201, 0x1F20F).addRange(0x1F232, 0x1F23A).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F3FA).addRange(0x1F400, 0x1F53D).addRange(0x1F546, 0x1F64F).addRange(0x1F680, 0x1F6FF).addRange(0x1F774, 0x1F77F).addRange(0x1F7D5, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8FF).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1FAFF).addRange(0x1FC00, 0x1FFFD);\nmodule.exports = set;","const set = require('regenerate')(0xB7, 0x640, 0x7FA, 0xB55, 0xE46, 0xEC6, 0x180A, 0x1843, 0x1AA7, 0x1C36, 0x1C7B, 0x3005, 0xA015, 0xA60C, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xFF70, 0x1135D, 0x11A98, 0x16FE3);\n\nset.addRange(0x2D0, 0x2D1).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xAAF3, 0xAAF4).addRange(0x10781, 0x10782).addRange(0x115C6, 0x115C8).addRange(0x16B42, 0x16B43).addRange(0x16FE0, 0x16FE1).addRange(0x1E13C, 0x1E13D).addRange(0x1E944, 0x1E946);\nmodule.exports = set;","const set = require('regenerate')(0x38C, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6DE, 0x6E9, 0x710, 0x7B1, 0x81A, 0x824, 0x828, 0x85E, 0x93B, 0x9B2, 0x9BD, 0x9CE, 0xA03, 0xA5E, 0xA76, 0xA83, 0xAC9, 0xAD0, 0xAF9, 0xB3D, 0xB40, 0xB83, 0xB9C, 0xBBF, 0xBD0, 0xC3D, 0xC5D, 0xD3D, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF36, 0xF38, 0xF7F, 0xF85, 0x1031, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1715, 0x17B6, 0x18AA, 0x1940, 0x1A57, 0x1A61, 0x1B3B, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CD3, 0x1CE1, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA673, 0xA7D3, 0xAA4D, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFDCF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x10EAD, 0x11000, 0x11075, 0x1112C, 0x11235, 0x11288, 0x1133D, 0x1133F, 0x11350, 0x11445, 0x1145D, 0x114B9, 0x114BE, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1183B, 0x11909, 0x1193D, 0x11A00, 0x11A50, 0x11A97, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D46, 0x11D96, 0x11D98, 0x11FB0, 0x16AF5, 0x1BC9C, 0x1BC9F, 0x1D166, 0x1D245, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E2FF, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0);\n\nset.addRange(0x20, 0x7E).addRange(0xA0, 0xAC).addRange(0xAE, 0x2FF).addRange(0x370, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x482).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x606, 0x60F).addRange(0x61D, 0x64A).addRange(0x660, 0x66F).addRange(0x671, 0x6D5).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x70D).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7C0, 0x7EA).addRange(0x7F4, 0x7FA).addRange(0x7FE, 0x815).addRange(0x830, 0x83E).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x903, 0x939).addRange(0x93D, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x950).addRange(0x958, 0x961).addRange(0x964, 0x980).addRange(0x982, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BF, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9E6, 0x9FD).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28);\nset.addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA40).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA6F).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC0).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE1).addRange(0xAE6, 0xAF1).addRange(0xB02, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB66, 0xB77).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xBE6, 0xBFA).addRange(0xC01, 0xC03).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC41, 0xC44).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC66, 0xC6F);\nset.addRange(0xC77, 0xC80).addRange(0xC82, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCBE).addRange(0xCC0, 0xCC1).addRange(0xCC3, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD02, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3F, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD4E, 0xD4F).addRange(0xD54, 0xD56).addRange(0xD58, 0xD61).addRange(0xD66, 0xD7F).addRange(0xD82, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDD0, 0xDD1).addRange(0xDD8, 0xDDE).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE3F, 0xE46).addRange(0xE4F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF17).addRange(0xF1A, 0xF34).addRange(0xF3A, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C);\nset.addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x102C).addRange(0x103B, 0x103C).addRange(0x103F, 0x1057).addRange(0x105A, 0x105D).addRange(0x1061, 0x1070).addRange(0x1075, 0x1081).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x108E, 0x109C).addRange(0x109E, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1360, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1734, 0x1736).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x17D4, 0x17DC).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x180A).addRange(0x1810, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5);\nset.addRange(0x1900, 0x191E).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A16).addRange(0x1A19, 0x1A1A).addRange(0x1A1E, 0x1A55).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1B04, 0x1B33).addRange(0x1B3D, 0x1B41).addRange(0x1B43, 0x1B4C).addRange(0x1B50, 0x1B6A).addRange(0x1B74, 0x1B7E).addRange(0x1B82, 0x1BA1).addRange(0x1BA6, 0x1BA7).addRange(0x1BAE, 0x1BE5).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1BFC, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE);\nset.addRange(0x2000, 0x200A).addRange(0x2010, 0x2027).addRange(0x202F, 0x205F).addRange(0x2070, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2E00, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3000, 0x3029).addRange(0x3030, 0x303F).addRange(0x3041, 0x3096).addRange(0x309B, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31F0, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67E, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA6F2, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805);\nset.addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA824).addRange(0xA827, 0xA82B).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C3).addRange(0xA8CE, 0xA8D9).addRange(0xA8F2, 0xA8FE).addRange(0xA900, 0xA925).addRange(0xA92E, 0xA946).addRange(0xA952, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA983, 0xA9B2).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9E4).addRange(0xA9E6, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA7B).addRange(0xAA7D, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAAEB).addRange(0xAAEE, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEC).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41);\nset.addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E1, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595);\nset.addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A00).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A40, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE4).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D23).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F27).addRange(0x10F30, 0x10F45).addRange(0x10F51, 0x10F59).addRange(0x10F70, 0x10F81).addRange(0x10F86, 0x10F89).addRange(0x10FB0, 0x10FCB);\nset.addRange(0x10FE0, 0x10FF6).addRange(0x11002, 0x11037).addRange(0x11047, 0x1104D).addRange(0x11052, 0x1106F).addRange(0x11071, 0x11072).addRange(0x11082, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11103, 0x11126).addRange(0x11136, 0x11147).addRange(0x11150, 0x11172).addRange(0x11174, 0x11176).addRange(0x11182, 0x111B5).addRange(0x111BF, 0x111C8).addRange(0x111CD, 0x111CE).addRange(0x111D0, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122E).addRange(0x11232, 0x11233).addRange(0x11238, 0x1123D).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112DE).addRange(0x112E0, 0x112E2).addRange(0x112F0, 0x112F9).addRange(0x11302, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11437).addRange(0x11440, 0x11441).addRange(0x11447, 0x1145B).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114B1, 0x114B2).addRange(0x114BB, 0x114BC).addRange(0x114C4, 0x114C7).addRange(0x114D0, 0x114D9);\nset.addRange(0x11580, 0x115AE).addRange(0x115B0, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x115C1, 0x115DB).addRange(0x11600, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x11641, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116AA).addRange(0x116AE, 0x116AF).addRange(0x116B8, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x11720, 0x11721).addRange(0x11730, 0x11746).addRange(0x11800, 0x1182E).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x11931, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193F, 0x11942).addRange(0x11944, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x119E1, 0x119E4).addRange(0x11A0B, 0x11A32).addRange(0x11A39, 0x11A3A).addRange(0x11A3F, 0x11A46).addRange(0x11A57, 0x11A58).addRange(0x11A5C, 0x11A89).addRange(0x11A9A, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2F).addRange(0x11C40, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D93, 0x11D94);\nset.addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF2).addRange(0x11EF5, 0x11EF8).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B37, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F50, 0x16F87).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16D).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA);\nset.addRange(0x1D200, 0x1D241).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA8B).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E900, 0x1E943).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F);\nset.addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF);\nset.addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9BE, 0x9CD, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB4D, 0xB82, 0xBBE, 0xBC0, 0xBCD, 0xBD7, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC2, 0xCC6, 0xD3E, 0xD4D, 0xD57, 0xD81, 0xDCA, 0xDCF, 0xDD6, 0xDDF, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x200C, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x112DF, 0x1133E, 0x11340, 0x11357, 0x11446, 0x1145E, 0x114B0, 0x114BA, 0x114BD, 0x115AF, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x11930, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x16F4F, 0x16FE4, 0x1D165, 0x1DA75, 0x1DA84, 0x1E2AE);\n\nset.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB3E, 0xB3F).addRange(0xB41, 0xB44).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C);\nset.addRange(0xD41, 0xD44).addRange(0xD62, 0xD63).addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B34, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2);\nset.addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE);\nset.addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D);\nset.addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16E, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x46).addRange(0x61, 0x66).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF26).addRange(0xFF41, 0xFF46);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2FF0, 0x2FF1).addRange(0x2FF4, 0x2FFB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2FF2, 0x2FF3);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x1123E, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD);\nset.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9);\nset.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9);\nset.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0);\nset.addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7).addRange(0xA8FD, 0xA92D);\nset.addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7);\nset.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7);\nset.addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310);\nset.addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09);\nset.addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E);\nset.addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9);\nset.addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x16FE3, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8);\nset.addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96);\nset.addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309B, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42);\nset.addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C);\nset.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48);\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0);\nset.addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9);\nset.addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738);\nset.addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x16FE4);\n\nset.addRange(0x3006, 0x3007).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B170, 0x1B2FB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x200C, 0x200D);\nmodule.exports = set;","const set = require('regenerate')(0x19BA, 0xAAB9);\n\nset.addRange(0xE40, 0xE44).addRange(0xEC0, 0xEC4).addRange(0x19B5, 0x19B7).addRange(0xAAB5, 0xAAB6).addRange(0xAABB, 0xAABC);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x2071, 0x207F, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0x10780, 0x1D4BB, 0x1D7CB);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x37A, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1DBF).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7);\nset.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2090, 0x209C).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7D).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA69B, 0xA69D).addRange(0xA72F, 0xA731).addRange(0xA76F, 0xA778).addRange(0xA793, 0xA795).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607);\nset.addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x2B, 0x5E, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3D5, 0x2016, 0x2040, 0x2044, 0x2052, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x214B, 0x21DD, 0x237C, 0x23B7, 0x23D0, 0x25E2, 0x25E4, 0x2640, 0x2642, 0xFB29, 0xFE68, 0xFF0B, 0xFF3C, 0xFF3E, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x3C, 0x3E).addRange(0x3D0, 0x3D2).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F6).addRange(0x606, 0x608).addRange(0x2032, 0x2034).addRange(0x2061, 0x2064).addRange(0x207A, 0x207E).addRange(0x208A, 0x208E).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20E6).addRange(0x20EB, 0x20EF).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x2128, 0x2129).addRange(0x212C, 0x212D).addRange(0x212F, 0x2131).addRange(0x2133, 0x2138).addRange(0x213C, 0x2149).addRange(0x2190, 0x21A7).addRange(0x21A9, 0x21AE).addRange(0x21B0, 0x21B1).addRange(0x21B6, 0x21B7).addRange(0x21BC, 0x21DB).addRange(0x21E4, 0x21E5).addRange(0x21F4, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B5).addRange(0x23DC, 0x23E2).addRange(0x25A0, 0x25A1).addRange(0x25AE, 0x25B7).addRange(0x25BC, 0x25C1).addRange(0x25C6, 0x25C7).addRange(0x25CA, 0x25CB).addRange(0x25CF, 0x25D3).addRange(0x25E7, 0x25EC).addRange(0x25F8, 0x25FF).addRange(0x2605, 0x2606).addRange(0x2660, 0x2663).addRange(0x266D, 0x266F).addRange(0x27C0, 0x27FF).addRange(0x2900, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE61, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F);\nset.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xFDD0, 0xFDEF).addRange(0xFFFE, 0xFFFF).addRange(0x1FFFE, 0x1FFFF).addRange(0x2FFFE, 0x2FFFF).addRange(0x3FFFE, 0x3FFFF).addRange(0x4FFFE, 0x4FFFF).addRange(0x5FFFE, 0x5FFFF).addRange(0x6FFFE, 0x6FFFF).addRange(0x7FFFE, 0x7FFFF).addRange(0x8FFFE, 0x8FFFF).addRange(0x9FFFE, 0x9FFFF).addRange(0xAFFFE, 0xAFFFF).addRange(0xBFFFE, 0xBFFFF).addRange(0xCFFFE, 0xCFFFF).addRange(0xDFFFE, 0xDFFFF).addRange(0xEFFFE, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF);\nmodule.exports = set;","const set = require('regenerate')(0x60, 0xA9, 0xAE, 0xB6, 0xBB, 0xBF, 0xD7, 0xF7, 0x3030);\n\nset.addRange(0x21, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0x7E).addRange(0xA1, 0xA7).addRange(0xAB, 0xAC).addRange(0xB0, 0xB1).addRange(0x2010, 0x2027).addRange(0x2030, 0x203E).addRange(0x2041, 0x2053).addRange(0x2055, 0x205E).addRange(0x2190, 0x245F).addRange(0x2500, 0x2775).addRange(0x2794, 0x2BFF).addRange(0x2E00, 0x2E7F).addRange(0x3001, 0x3003).addRange(0x3008, 0x3020).addRange(0xFD3E, 0xFD3F).addRange(0xFE45, 0xFE46);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0x85);\n\nset.addRange(0x9, 0xD).addRange(0x200E, 0x200F).addRange(0x2028, 0x2029);\nmodule.exports = set;","const set = require('regenerate')(0x22, 0x27, 0xAB, 0xBB, 0x2E42, 0xFF02, 0xFF07);\n\nset.addRange(0x2018, 0x201F).addRange(0x2039, 0x203A).addRange(0x300C, 0x300F).addRange(0x301D, 0x301F).addRange(0xFE41, 0xFE44).addRange(0xFF62, 0xFF63);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1F1E6, 0x1F1FF);\nmodule.exports = set;","const set = require('regenerate')(0x21, 0x2E, 0x3F, 0x589, 0x6D4, 0x7F9, 0x837, 0x839, 0x1362, 0x166E, 0x1803, 0x1809, 0x2E2E, 0x2E3C, 0x3002, 0xA4FF, 0xA6F3, 0xA6F7, 0xA92F, 0xABEB, 0xFE52, 0xFF01, 0xFF0E, 0xFF1F, 0xFF61, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x16AF5, 0x16B44, 0x16E98, 0x1BC9F, 0x1DA88);\n\nset.addRange(0x61D, 0x61F).addRange(0x700, 0x702).addRange(0x83D, 0x83E).addRange(0x964, 0x965).addRange(0x104A, 0x104B).addRange(0x1367, 0x1368).addRange(0x1735, 0x1736).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5E, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3C).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E53, 0x2E54).addRange(0xA60E, 0xA60F).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C8, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE56, 0xFE57).addRange(0x10A56, 0x10A57).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x11048).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x11239).addRange(0x1123B, 0x1123C).addRange(0x1144B, 0x1144C).addRange(0x115C2, 0x115C3).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11C41, 0x11C42).addRange(0x11EF7, 0x11EF8).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B38);\nmodule.exports = set;","const set = require('regenerate')(0x12F, 0x249, 0x268, 0x29D, 0x2B2, 0x3F3, 0x456, 0x458, 0x1D62, 0x1D96, 0x1DA4, 0x1DA8, 0x1E2D, 0x1ECB, 0x2071, 0x2C7C, 0x1DF1A);\n\nset.addRange(0x69, 0x6A).addRange(0x2148, 0x2149).addRange(0x1D422, 0x1D423).addRange(0x1D456, 0x1D457).addRange(0x1D48A, 0x1D48B).addRange(0x1D4BE, 0x1D4BF).addRange(0x1D4F2, 0x1D4F3).addRange(0x1D526, 0x1D527).addRange(0x1D55A, 0x1D55B).addRange(0x1D58E, 0x1D58F).addRange(0x1D5C2, 0x1D5C3).addRange(0x1D5F6, 0x1D5F7).addRange(0x1D62A, 0x1D62B).addRange(0x1D65E, 0x1D65F).addRange(0x1D692, 0x1D693);\nmodule.exports = set;","const set = require('regenerate')(0x21, 0x2C, 0x2E, 0x3F, 0x37E, 0x387, 0x589, 0x5C3, 0x60C, 0x61B, 0x6D4, 0x70C, 0x85E, 0xF08, 0x166E, 0x17DA, 0x2E2E, 0x2E3C, 0x2E41, 0x2E4C, 0xA92F, 0xAADF, 0xABEB, 0xFF01, 0xFF0C, 0xFF0E, 0xFF1F, 0xFF61, 0xFF64, 0x1039F, 0x103D0, 0x10857, 0x1091F, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x11C71, 0x16AF5, 0x16B44, 0x1BC9F);\n\nset.addRange(0x3A, 0x3B).addRange(0x61D, 0x61F).addRange(0x700, 0x70A).addRange(0x7F8, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF0D, 0xF12).addRange(0x104A, 0x104B).addRange(0x1361, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x1802, 0x1805).addRange(0x1808, 0x1809).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5D, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E4E, 0x2E4F).addRange(0x2E53, 0x2E54).addRange(0x3001, 0x3002).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F3, 0xA6F7).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C7, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFF1A, 0xFF1B).addRange(0x10A56, 0x10A57).addRange(0x10AF0, 0x10AF5).addRange(0x10B3A, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x1123C).addRange(0x1144B, 0x1144D);\nset.addRange(0x1145A, 0x1145B).addRange(0x115C2, 0x115C5).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11AA1, 0x11AA2).addRange(0x11C41, 0x11C43).addRange(0x11EF7, 0x11EF8).addRange(0x12470, 0x12474).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B39).addRange(0x16E97, 0x16E98).addRange(0x1DA87, 0x1DA8A);\nmodule.exports = set;","const set = require('regenerate')(0xFA11, 0xFA1F, 0xFA21);\n\nset.addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xFA0E, 0xFA0F).addRange(0xFA13, 0xFA14).addRange(0xFA23, 0xFA24).addRange(0xFA27, 0xFA29).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2160, 0x216F);\nset.addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189);\nmodule.exports = set;","const set = require('regenerate')(0x180F);\n\nset.addRange(0x180B, 0x180D).addRange(0xFE00, 0xFE0F).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0x85, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\n\nset.addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x1123E, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD);\nset.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9);\nset.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9);\nset.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0);\nset.addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309A).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7);\nset.addRange(0xA8FD, 0xA92D).addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE7F, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE);\nset.addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939);\nset.addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C);\nset.addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06);\nset.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99);\nset.addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE);\nset.addRange(0x1E2C0, 0x1E2F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE32, 0xE84, 0xEA5, 0xEB2, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x16FE3, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E);\nset.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE);\nset.addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76);\nset.addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE7F, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0);\nset.addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2);\nset.addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32);\nset.addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3);\nset.addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D);\nset.addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0xA7FA, 0x1D4A2, 0x1D4BB, 0x1D546);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2AF).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184);\nset.addRange(0x2C00, 0x2C7B).addRange(0x2C7E, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA76F).addRange(0xA771, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550);\nset.addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E900, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x29, 0x5D, 0x7D, 0xF3B, 0xF3D, 0x169C, 0x2046, 0x207E, 0x208E, 0x2309, 0x230B, 0x232A, 0x2769, 0x276B, 0x276D, 0x276F, 0x2771, 0x2773, 0x2775, 0x27C6, 0x27E7, 0x27E9, 0x27EB, 0x27ED, 0x27EF, 0x2984, 0x2986, 0x2988, 0x298A, 0x298C, 0x298E, 0x2990, 0x2992, 0x2994, 0x2996, 0x2998, 0x29D9, 0x29DB, 0x29FD, 0x2E23, 0x2E25, 0x2E27, 0x2E29, 0x2E56, 0x2E58, 0x2E5A, 0x2E5C, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, 0x3017, 0x3019, 0x301B, 0xFD3E, 0xFE18, 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48, 0xFE5A, 0xFE5C, 0xFE5E, 0xFF09, 0xFF3D, 0xFF5D, 0xFF60, 0xFF63);\n\nset.addRange(0x301E, 0x301F);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0x2054, 0xFF3F);\n\nset.addRange(0x203F, 0x2040).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x0, 0x1F).addRange(0x7F, 0x9F);\nmodule.exports = set;","const set = require('regenerate')(0x24, 0x58F, 0x60B, 0x9FB, 0xAF1, 0xBF9, 0xE3F, 0x17DB, 0xA838, 0xFDFC, 0xFE69, 0xFF04, 0x1E2FF, 0x1ECB0);\n\nset.addRange(0xA2, 0xA5).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x20A0, 0x20C0).addRange(0xFFE0, 0xFFE1).addRange(0xFFE5, 0xFFE6).addRange(0x11FDD, 0x11FE0);\nmodule.exports = set;","const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD);\n\nset.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x30, 0x39).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xBE6, 0xBEF).addRange(0xC66, 0xC6F).addRange(0xCE6, 0xCEF).addRange(0xD66, 0xD6F).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF29).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x17E0, 0x17E9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19D9).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0xA620, 0xA629).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x104A0, 0x104A9).addRange(0x10D30, 0x10D39).addRange(0x11066, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x11739).addRange(0x118E0, 0x118E9).addRange(0x11950, 0x11959);\nset.addRange(0x11C50, 0x11C59).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E950, 0x1E959).addRange(0x1FBF0, 0x1FBF9);\nmodule.exports = set;","const set = require('regenerate')(0x1ABE);\n\nset.addRange(0x488, 0x489).addRange(0x20DD, 0x20E0).addRange(0x20E2, 0x20E4).addRange(0xA670, 0xA672);\nmodule.exports = set;","const set = require('regenerate')(0xBB, 0x2019, 0x201D, 0x203A, 0x2E03, 0x2E05, 0x2E0A, 0x2E0D, 0x2E1D, 0x2E21);\n\nmodule.exports = set;","const set = require('regenerate')(0xAD, 0x61C, 0x6DD, 0x70F, 0x8E2, 0x180E, 0xFEFF, 0x110BD, 0x110CD, 0xE0001);\n\nset.addRange(0x600, 0x605).addRange(0x890, 0x891).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x2064).addRange(0x2066, 0x206F).addRange(0xFFF9, 0xFFFB).addRange(0x13430, 0x13438).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D173, 0x1D17A).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')(0xAB, 0x2018, 0x201F, 0x2039, 0x2E02, 0x2E04, 0x2E09, 0x2E0C, 0x2E1C, 0x2E20);\n\nset.addRange(0x201B, 0x201C);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x16FE3, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884);\nset.addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25);\nset.addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3006).addRange(0x3031, 0x3035).addRange(0x303B, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6E5).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28);\nset.addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C);\nset.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48);\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0);\nset.addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3);\nset.addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D);\nset.addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x3007, 0x10341, 0x1034A);\n\nset.addRange(0x16EE, 0x16F0).addRange(0x2160, 0x2182).addRange(0x2185, 0x2188).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0xA6E6, 0xA6EF).addRange(0x10140, 0x10174).addRange(0x103D1, 0x103D5).addRange(0x12400, 0x1246E);\nmodule.exports = set;","const set = require('regenerate')(0x2028);\n\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0xA7FA, 0x1D4BB, 0x1D7CB);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2AF).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7);\nset.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7B).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA72F, 0xA731).addRange(0xA771, 0xA778).addRange(0xA793, 0xA795).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E);\nset.addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x9BC, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xB3C, 0xB82, 0xBD7, 0xC3C, 0xCBC, 0xD57, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x108F, 0x17DD, 0x180F, 0x18A9, 0x1A7F, 0x1CED, 0x1CF4, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9E5, 0xAA43, 0xAAB0, 0xAAC1, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11070, 0x110C2, 0x11173, 0x1123E, 0x11357, 0x1145E, 0x11940, 0x119E4, 0x11A47, 0x11D3A, 0x11D47, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E2AE);\n\nset.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x903).addRange(0x93A, 0x93C).addRange(0x93E, 0x94F).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x981, 0x983).addRange(0x9BE, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CD).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA03).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA83).addRange(0xABE, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB3E, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD);\nset.addRange(0xC00, 0xC04).addRange(0xC3E, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xC81, 0xC83).addRange(0xCBE, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD03).addRange(0xD3B, 0xD3C).addRange(0xD3E, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4D).addRange(0xD62, 0xD63).addRange(0xD81, 0xD83).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF71, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102B, 0x103E).addRange(0x1056, 0x1059).addRange(0x105E, 0x1060).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1071, 0x1074).addRange(0x1082, 0x108D).addRange(0x109A, 0x109D).addRange(0x135D, 0x135F).addRange(0x1712, 0x1715).addRange(0x1732, 0x1734).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1A17, 0x1A1B);\nset.addRange(0x1A55, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B04).addRange(0x1B34, 0x1B44).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B82).addRange(0x1BA1, 0x1BAD).addRange(0x1BE6, 0x1BF3).addRange(0x1C24, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA823, 0xA827).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA953).addRange(0xA980, 0xA983).addRange(0xA9B3, 0xA9C0).addRange(0xAA29, 0xAA36).addRange(0xAA4C, 0xAA4D).addRange(0xAA7B, 0xAA7D).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEB, 0xAAEF).addRange(0xAAF5, 0xAAF6).addRange(0xABE3, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC);\nset.addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11000, 0x11002).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11082).addRange(0x110B0, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x11134).addRange(0x11145, 0x11146).addRange(0x11180, 0x11182).addRange(0x111B3, 0x111C0).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111CF).addRange(0x1122C, 0x11237).addRange(0x112DF, 0x112EA).addRange(0x11300, 0x11303).addRange(0x1133B, 0x1133C).addRange(0x1133E, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11435, 0x11446).addRange(0x114B0, 0x114C3).addRange(0x115AF, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11630, 0x11640).addRange(0x116AB, 0x116B7).addRange(0x1171D, 0x1172B).addRange(0x1182C, 0x1183A).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193E).addRange(0x11942, 0x11943).addRange(0x119D1, 0x119D7).addRange(0x119DA, 0x119E0).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A39).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A5B).addRange(0x11A8A, 0x11A99).addRange(0x11C2F, 0x11C36).addRange(0x11C38, 0x11C3F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45);\nset.addRange(0x11D8A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D97).addRange(0x11EF3, 0x11EF6).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F51, 0x16F87).addRange(0x16F8F, 0x16F92).addRange(0x16FF0, 0x16FF1).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0x2B, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3F6, 0x2044, 0x2052, 0x2118, 0x214B, 0x21A0, 0x21A3, 0x21A6, 0x21AE, 0x21D2, 0x21D4, 0x237C, 0x25B7, 0x25C1, 0x266F, 0xFB29, 0xFE62, 0xFF0B, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3);\n\nset.addRange(0x3C, 0x3E).addRange(0x606, 0x608).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x2140, 0x2144).addRange(0x2190, 0x2194).addRange(0x219A, 0x219B).addRange(0x21CE, 0x21CF).addRange(0x21F4, 0x22FF).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B3).addRange(0x23DC, 0x23E1).addRange(0x25F8, 0x25FF).addRange(0x27C0, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x27FF).addRange(0x2900, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')(0x2EC, 0x2EE, 0x374, 0x37A, 0x559, 0x640, 0x7FA, 0x81A, 0x824, 0x828, 0x8C9, 0x971, 0xE46, 0xEC6, 0x10FC, 0x17D7, 0x1843, 0x1AA7, 0x1D78, 0x2071, 0x207F, 0x2D6F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA788, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xAB69, 0xFF70, 0x16FE3, 0x1E94B);\n\nset.addRange(0x2B0, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x6E5, 0x6E6).addRange(0x7F4, 0x7F5).addRange(0x1C78, 0x1C7D).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x2090, 0x209C).addRange(0x2C7C, 0x2C7D).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA69C, 0xA69D).addRange(0xA717, 0xA71F).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xAAF3, 0xAAF4).addRange(0xAB5C, 0xAB5F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x16B40, 0x16B43).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1E137, 0x1E13D);\nmodule.exports = set;","const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0xB8, 0x2ED, 0x375, 0x888, 0x1FBD, 0xAB5B, 0xFF3E, 0xFF40, 0xFFE3);\n\nset.addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x309B, 0x309C).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0x1F3FB, 0x1F3FF);\nmodule.exports = set;","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x20E1, 0x2D7F, 0xA66F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E2AE);\n\nset.addRange(0x300, 0x36F).addRange(0x483, 0x487).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63);\nset.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0);\nset.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231);\nset.addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169);\nset.addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xB9, 0x2070, 0x2CFD, 0x3007, 0x10341, 0x1034A);\n\nset.addRange(0x30, 0x39).addRange(0xB2, 0xB3).addRange(0xBC, 0xBE).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0x9F4, 0x9F9).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xB72, 0xB77).addRange(0xBE6, 0xBF2).addRange(0xC66, 0xC6F).addRange(0xC78, 0xC7E).addRange(0xCE6, 0xCEF).addRange(0xD58, 0xD5E).addRange(0xD66, 0xD78).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF33).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x1369, 0x137C).addRange(0x16EE, 0x16F0).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19DA).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0x2074, 0x2079).addRange(0x2080, 0x2089).addRange(0x2150, 0x2182).addRange(0x2185, 0x2189).addRange(0x2460, 0x249B).addRange(0x24EA, 0x24FF).addRange(0x2776, 0x2793).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3192, 0x3195).addRange(0x3220, 0x3229).addRange(0x3248, 0x324F).addRange(0x3251, 0x325F);\nset.addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA620, 0xA629).addRange(0xA6E6, 0xA6EF).addRange(0xA830, 0xA835).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x10107, 0x10133).addRange(0x10140, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x103D1, 0x103D5).addRange(0x104A0, 0x104A9).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x111E1, 0x111F4).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x1173B);\nset.addRange(0x118E0, 0x118F2).addRange(0x11950, 0x11959).addRange(0x11C50, 0x11C6C).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11FC0, 0x11FD4).addRange(0x12400, 0x1246E).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16E80, 0x16E96).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E950, 0x1E959).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C).addRange(0x1FBF0, 0x1FBF9);\nmodule.exports = set;","const set = require('regenerate')(0x28, 0x5B, 0x7B, 0xF3A, 0xF3C, 0x169B, 0x201A, 0x201E, 0x2045, 0x207D, 0x208D, 0x2308, 0x230A, 0x2329, 0x2768, 0x276A, 0x276C, 0x276E, 0x2770, 0x2772, 0x2774, 0x27C5, 0x27E6, 0x27E8, 0x27EA, 0x27EC, 0x27EE, 0x2983, 0x2985, 0x2987, 0x2989, 0x298B, 0x298D, 0x298F, 0x2991, 0x2993, 0x2995, 0x2997, 0x29D8, 0x29DA, 0x29FC, 0x2E22, 0x2E24, 0x2E26, 0x2E28, 0x2E42, 0x2E55, 0x2E57, 0x2E59, 0x2E5B, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016, 0x3018, 0x301A, 0x301D, 0xFD3F, 0xFE17, 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47, 0xFE59, 0xFE5B, 0xFE5D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62);\n\nmodule.exports = set;","const set = require('regenerate')(0xAD, 0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x61C, 0x6DD, 0x83F, 0x85F, 0x8E2, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x180E, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x110BD, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FB93);\n\nset.addRange(0x0, 0x1F).addRange(0x7F, 0x9F).addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x605).addRange(0x70E, 0x70F).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x88F, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D);\nset.addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7).addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF3, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xECE, 0xECF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF);\nset.addRange(0x169D, 0x169F).addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E).addRange(0x1737, 0x173F).addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F);\nset.addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x2FFC, 0x2FFF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EF).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xF8FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF);\nset.addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFF00).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFFB).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E);\nset.addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F).addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77).addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFF).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x1123F, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F);\nset.addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x1342F, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF);\nset.addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B14F).addRange(0x1B153, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA0, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D173, 0x1D17A).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26);\nset.addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DC).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F774, 0x1F77F).addRange(0x1F7D9, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA75, 0x1FA77).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA87, 0x1FA8F).addRange(0x1FAAD, 0x1FAAF).addRange(0x1FABB, 0x1FABF).addRange(0x1FAC6, 0x1FACF).addRange(0x1FADA, 0x1FADF).addRange(0x1FAE8, 0x1FAEF).addRange(0x1FAF7, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B739, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0xE00FF).addRange(0xE01F0, 0x10FFFF);\nset;\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xBA, 0x1BB, 0x294, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xF00, 0x103F, 0x1061, 0x108E, 0x1258, 0x12C0, 0x17DC, 0x18AA, 0x1CFA, 0x3006, 0x303C, 0x309F, 0x30FF, 0xA66E, 0xA78F, 0xA7F7, 0xA8FB, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xAAF2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x1DF0A, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x1C0, 0x1C3).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C8).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x972, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39);\nset.addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE45).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066);\nset.addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x1100, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1842).addRange(0x1844, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C77).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6);\nset.addRange(0x2135, 0x2138).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3041, 0x3096).addRange(0x30A1, 0x30FA).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA014).addRange(0xA016, 0xA48C).addRange(0xA4D0, 0xA4F7).addRange(0xA500, 0xA60B).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA6A0, 0xA6E5).addRange(0xA7FB, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E7, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA6F).addRange(0xAA71, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADC).addRange(0xAAE0, 0xAAEA).addRange(0xAB01, 0xAB06);\nset.addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xABC0, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10450, 0x1049D).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nset.addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330);\nset.addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16F00, 0x16F4A).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B000, 0x1B122);\nset.addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1E100, 0x1E12C).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0xB9, 0x19DA, 0x2070, 0x2189, 0x2CFD);\n\nset.addRange(0xB2, 0xB3).addRange(0xBC, 0xBE).addRange(0x9F4, 0x9F9).addRange(0xB72, 0xB77).addRange(0xBF0, 0xBF2).addRange(0xC78, 0xC7E).addRange(0xD58, 0xD5E).addRange(0xD70, 0xD78).addRange(0xF2A, 0xF33).addRange(0x1369, 0x137C).addRange(0x17F0, 0x17F9).addRange(0x2074, 0x2079).addRange(0x2080, 0x2089).addRange(0x2150, 0x215F).addRange(0x2460, 0x249B).addRange(0x24EA, 0x24FF).addRange(0x2776, 0x2793).addRange(0x3192, 0x3195).addRange(0x3220, 0x3229).addRange(0x3248, 0x324F).addRange(0x3251, 0x325F).addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA830, 0xA835).addRange(0x10107, 0x10133).addRange(0x10175, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x11065).addRange(0x111E1, 0x111F4);\nset.addRange(0x1173A, 0x1173B).addRange(0x118EA, 0x118F2).addRange(0x11C5A, 0x11C6C).addRange(0x11FC0, 0x11FD4).addRange(0x16B5B, 0x16B61).addRange(0x16E80, 0x16E96).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1E8C7, 0x1E8CF).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C);\nmodule.exports = set;","const set = require('regenerate')(0x2A, 0x2C, 0x5C, 0xA1, 0xA7, 0xBF, 0x37E, 0x387, 0x589, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x166E, 0x1CD3, 0x2053, 0x2D70, 0x2E0B, 0x2E1B, 0x2E41, 0x303D, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE19, 0xFE30, 0xFE68, 0xFF0A, 0xFF0C, 0xFF3C, 0xFF61, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F);\n\nset.addRange(0x21, 0x23).addRange(0x25, 0x27).addRange(0x2E, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x1805).addRange(0x1807, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2016, 0x2017).addRange(0x2020, 0x2027).addRange(0x2030, 0x2038).addRange(0x203B, 0x203E).addRange(0x2041, 0x2043).addRange(0x2047, 0x2051).addRange(0x2055, 0x205E).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E01).addRange(0x2E06, 0x2E08).addRange(0x2E0E, 0x2E16).addRange(0x2E18, 0x2E19);\nset.addRange(0x2E1E, 0x2E1F).addRange(0x2E2A, 0x2E2E).addRange(0x2E30, 0x2E39).addRange(0x2E3C, 0x2E3F).addRange(0x2E43, 0x2E4F).addRange(0x2E52, 0x2E54).addRange(0x3001, 0x3003).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFE10, 0xFE16).addRange(0xFE45, 0xFE46).addRange(0xFE49, 0xFE4C).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFE5F, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF07).addRange(0xFF0E, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF64, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D).addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643);\nset.addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')(0xA6, 0xA9, 0xAE, 0xB0, 0x482, 0x6DE, 0x6E9, 0x7F6, 0x9FA, 0xB70, 0xBFA, 0xC7F, 0xD4F, 0xD79, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x1940, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214A, 0x214F, 0x21D3, 0x3004, 0x3020, 0x3250, 0xA839, 0xFDCF, 0xFFE4, 0xFFE8, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1E14F, 0x1ECAC, 0x1ED2E, 0x1F7F0);\n\nset.addRange(0x58D, 0x58E).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0xBF3, 0xBF8).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2117).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x214C, 0x214D).addRange(0x218A, 0x218B).addRange(0x2195, 0x2199).addRange(0x219C, 0x219F).addRange(0x21A1, 0x21A2).addRange(0x21A4, 0x21A5).addRange(0x21A7, 0x21AD).addRange(0x21AF, 0x21CD).addRange(0x21D0, 0x21D1).addRange(0x21D5, 0x21F3).addRange(0x2300, 0x2307).addRange(0x230C, 0x231F).addRange(0x2322, 0x2328).addRange(0x232B, 0x237B).addRange(0x237D, 0x239A).addRange(0x23B4, 0x23DB).addRange(0x23E2, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9).addRange(0x2500, 0x25B6).addRange(0x25B8, 0x25C0).addRange(0x25C2, 0x25F7).addRange(0x2600, 0x266E).addRange(0x2670, 0x2767).addRange(0x2794, 0x27BF).addRange(0x2800, 0x28FF).addRange(0x2B00, 0x2B2F).addRange(0x2B45, 0x2B46).addRange(0x2B4D, 0x2B73);\nset.addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA837).addRange(0xAA77, 0xAA79).addRange(0xFD40, 0xFD4F).addRange(0xFDFD, 0xFDFF).addRange(0xFFED, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FDC).addRange(0x11FE1, 0x11FF1).addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83);\nset.addRange(0x1DA85, 0x1DA86).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F3FA).addRange(0x1F400, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA);\nmodule.exports = set;","const set = require('regenerate')(0x2029);\n\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xE000, 0xF8FF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0x7B, 0x7D, 0xA1, 0xA7, 0xAB, 0xBB, 0xBF, 0x37E, 0x387, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x1400, 0x166E, 0x1CD3, 0x2D70, 0x3030, 0x303D, 0x30A0, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE63, 0xFE68, 0xFF3F, 0xFF5B, 0xFF5D, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x10EAD, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F);\n\nset.addRange(0x21, 0x23).addRange(0x25, 0x2A).addRange(0x2C, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0x5B, 0x5D).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x589, 0x58A).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xF3A, 0xF3D).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x169B, 0x169C).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2010, 0x2027).addRange(0x2030, 0x2043).addRange(0x2045, 0x2051).addRange(0x2053, 0x205E).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2308, 0x230B).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C5, 0x27C6);\nset.addRange(0x27E6, 0x27EF).addRange(0x2983, 0x2998).addRange(0x29D8, 0x29DB).addRange(0x29FC, 0x29FD).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E2E).addRange(0x2E30, 0x2E4F).addRange(0x2E52, 0x2E5D).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3014, 0x301F).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF0A).addRange(0xFF0C, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF3B, 0xFF3D).addRange(0xFF5F, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D);\nset.addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643).addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\n\nset.addRange(0x2000, 0x200A).addRange(0x2028, 0x2029);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\n\nset.addRange(0x2000, 0x200A);\nmodule.exports = set;","const set = require('regenerate')(0x903, 0x93B, 0x9D7, 0xA03, 0xA83, 0xAC9, 0xB3E, 0xB40, 0xB57, 0xBD7, 0xCBE, 0xD57, 0xF7F, 0x1031, 0x1038, 0x108F, 0x1715, 0x1734, 0x17B6, 0x1A55, 0x1A57, 0x1A61, 0x1B04, 0x1B35, 0x1B3B, 0x1B82, 0x1BA1, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CE1, 0x1CF7, 0xA827, 0xA983, 0xAA4D, 0xAA7B, 0xAA7D, 0xAAEB, 0xAAF5, 0xABEC, 0x11000, 0x11002, 0x11082, 0x1112C, 0x11182, 0x111CE, 0x11235, 0x11357, 0x11445, 0x114B9, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1193D, 0x11940, 0x11942, 0x119E4, 0x11A39, 0x11A97, 0x11C2F, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D96);\n\nset.addRange(0x93E, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x94F).addRange(0x982, 0x983).addRange(0x9BE, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0xA3E, 0xA40).addRange(0xABE, 0xAC0).addRange(0xACB, 0xACC).addRange(0xB02, 0xB03).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xBBE, 0xBBF).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC01, 0xC03).addRange(0xC41, 0xC44).addRange(0xC82, 0xC83).addRange(0xCC0, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCD5, 0xCD6).addRange(0xD02, 0xD03).addRange(0xD3E, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD82, 0xD83).addRange(0xDCF, 0xDD1).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xF3E, 0xF3F).addRange(0x102B, 0x102C).addRange(0x103B, 0x103C).addRange(0x1056, 0x1057).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x109A, 0x109C).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1A19, 0x1A1A).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1B3D, 0x1B41);\nset.addRange(0x1B43, 0x1B44).addRange(0x1BA6, 0x1BA7).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1C24, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x302E, 0x302F).addRange(0xA823, 0xA824).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C3).addRange(0xA952, 0xA953).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9C0).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAAEE, 0xAAEF).addRange(0xABE3, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEA).addRange(0x110B0, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x11145, 0x11146).addRange(0x111B3, 0x111B5).addRange(0x111BF, 0x111C0).addRange(0x1122C, 0x1122E).addRange(0x11232, 0x11233).addRange(0x112E0, 0x112E2).addRange(0x11302, 0x11303).addRange(0x1133E, 0x1133F).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11435, 0x11437).addRange(0x11440, 0x11441).addRange(0x114B0, 0x114B2).addRange(0x114BB, 0x114BE).addRange(0x115AF, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x11630, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x116AE, 0x116AF).addRange(0x11720, 0x11721).addRange(0x1182C, 0x1182E).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x119D1, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x11A57, 0x11A58).addRange(0x11D8A, 0x11D8E);\nset.addRange(0x11D93, 0x11D94).addRange(0x11EF5, 0x11EF6).addRange(0x16F51, 0x16F87).addRange(0x16FF0, 0x16FF1).addRange(0x1D165, 0x1D166).addRange(0x1D16D, 0x1D172);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xD800, 0xDFFF);\nmodule.exports = set;","const set = require('regenerate')(0x24, 0x2B, 0x5E, 0x60, 0x7C, 0x7E, 0xAC, 0xB4, 0xB8, 0xD7, 0xF7, 0x2ED, 0x375, 0x3F6, 0x482, 0x60B, 0x6DE, 0x6E9, 0x7F6, 0x888, 0xAF1, 0xB70, 0xC7F, 0xD4F, 0xD79, 0xE3F, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x17DB, 0x1940, 0x1FBD, 0x2044, 0x2052, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214F, 0x3004, 0x3020, 0x3250, 0xAB5B, 0xFB29, 0xFDCF, 0xFE62, 0xFE69, 0xFF04, 0xFF0B, 0xFF3E, 0xFF40, 0xFF5C, 0xFF5E, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3, 0x1E14F, 0x1E2FF, 0x1ECAC, 0x1ECB0, 0x1ED2E, 0x1F7F0);\n\nset.addRange(0x3C, 0x3E).addRange(0xA2, 0xA6).addRange(0xA8, 0xA9).addRange(0xAE, 0xB1).addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x58D, 0x58F).addRange(0x606, 0x608).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x9FA, 0x9FB).addRange(0xBF3, 0xBFA).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2118).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x2140, 0x2144).addRange(0x214A, 0x214D).addRange(0x218A, 0x218B).addRange(0x2190, 0x2307).addRange(0x230C, 0x2328).addRange(0x232B, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9);\nset.addRange(0x2500, 0x2767).addRange(0x2794, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x309B, 0x309C).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA839).addRange(0xAA77, 0xAA79).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0xFD40, 0xFD4F).addRange(0xFDFC, 0xFDFF).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FF1);\nset.addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA86).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7);\nset.addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA);\nmodule.exports = set;","const set = require('regenerate')(0x1C5, 0x1C8, 0x1CB, 0x1F2, 0x1FBC, 0x1FCC, 0x1FFC);\n\nset.addRange(0x1F88, 0x1F8F).addRange(0x1F98, 0x1F9F).addRange(0x1FA8, 0x1FAF);\nmodule.exports = set;","const set = require('regenerate')(0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x70E, 0x83F, 0x85F, 0x88F, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x2065, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFF00, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x1246F, 0x1342F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FB93);\n\nset.addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x5FF).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x892, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D).addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7);\nset.addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF3, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xECE, 0xECF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF).addRange(0x169D, 0x169F).addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E);\nset.addRange(0x1737, 0x173F).addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F).addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E);\nset.addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x2FFC, 0x2FFF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EF).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xD7FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFEFE).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1);\nset.addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFF8).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F).addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38);\nset.addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77).addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFF).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CC).addRange(0x110CE, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x1123F, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C);\nset.addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13439, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B14F);\nset.addRange(0x1B153, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA4, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF);\nset.addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DC).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F774, 0x1F77F).addRange(0x1F7D9, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA75, 0x1FA77).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA87, 0x1FA8F).addRange(0x1FAAD, 0x1FAAF).addRange(0x1FABB, 0x1FABF).addRange(0x1FAC6, 0x1FACF).addRange(0x1FADA, 0x1FADF).addRange(0x1FAE8, 0x1FAEF).addRange(0x1FAF7, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B739, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0xE0000).addRange(0xE0002, 0xE001F).addRange(0xE0080, 0xE00FF).addRange(0xE01F0, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF);\nmodule.exports = set;","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2C00, 0x2C2F);\nset.addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x14400, 0x14646);\nmodule.exports = set;","const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x600, 0x604).addRange(0x606, 0x60B).addRange(0x60D, 0x61A).addRange(0x61C, 0x61E).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x656, 0x66F).addRange(0x671, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD3D).addRange(0xFD40, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x10E60, 0x10E7E).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0xFB13, 0xFB17);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA6A0, 0xA6F7).addRange(0x16800, 0x16A38);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC0, 0x1BF3).addRange(0x1BFC, 0x1BFF);\nmodule.exports = set;","const set = require('regenerate')(0x9B2, 0x9D7);\n\nset.addRange(0x980, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2EA, 0x2EB).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF);\nmodule.exports = set;","const set = require('regenerate')(0x1107F);\n\nset.addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2800, 0x28FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1A00, 0x1A1B).addRange(0x1A1E, 0x1A1F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1740, 0x1753);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1400, 0x167F).addRange(0x18B0, 0x18F5).addRange(0x11AB0, 0x11ABF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x102A0, 0x102D0);\nmodule.exports = set;","const set = require('regenerate')(0x1056F);\n\nset.addRange(0x10530, 0x10563);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11100, 0x11134).addRange(0x11136, 0x11147);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FB0, 0x10FCB);\nmodule.exports = set;","const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x60C, 0x61B, 0x61F, 0x640, 0x6DD, 0x8E2, 0xE3F, 0x10FB, 0x1805, 0x1CD3, 0x1CE1, 0x1CFA, 0x3006, 0x30A0, 0x32FF, 0xA92E, 0xA9CF, 0xAB5B, 0xFEFF, 0xFF70, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001);\n\nset.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0x964, 0x965).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x1802, 0x1803).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x2000, 0x200B).addRange(0x200E, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E5D).addRange(0x2FF0, 0x2FFB).addRange(0x3000, 0x3004).addRange(0x3008, 0x3020).addRange(0x3030, 0x3037).addRange(0x303C, 0x303F).addRange(0x309B, 0x309C).addRange(0x30FB, 0x30FC).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x325F).addRange(0x327F, 0x32CF).addRange(0x3358, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA830, 0xA839);\nset.addRange(0xAB6A, 0xAB6B).addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x102E1, 0x102FB).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D);\nset.addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543);\nmodule.exports = set;","const set = require('regenerate')(0x10808, 0x1083C, 0x1083F);\n\nset.addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x12F90, 0x12FF2);\nmodule.exports = set;","const set = require('regenerate')(0x1D2B, 0x1D78);\n\nset.addRange(0x400, 0x484).addRange(0x487, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10400, 0x1044F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x900, 0x950).addRange(0x955, 0x963).addRange(0x966, 0x97F).addRange(0xA8E0, 0xA8FF);\nmodule.exports = set;","const set = require('regenerate')(0x11909);\n\nset.addRange(0x11900, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11800, 0x1183B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BC9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13000, 0x1342E).addRange(0x13430, 0x13438);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10500, 0x10527);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FE0, 0x10FF6);\nmodule.exports = set;","const set = require('regenerate')(0x1258, 0x12C0);\n\nset.addRange(0x1200, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE);\nmodule.exports = set;","const set = require('regenerate')(0x10C7, 0x10CD, 0x2D27, 0x2D2D);\n\nset.addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x2D00, 0x2D25);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2C00, 0x2C5F).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10330, 0x1034A);\nmodule.exports = set;","const set = require('regenerate')(0x11350, 0x11357);\n\nset.addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133C, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374);\nmodule.exports = set;","const set = require('regenerate')(0x37F, 0x384, 0x386, 0x38C, 0x1DBF, 0x1F59, 0x1F5B, 0x1F5D, 0x2126, 0xAB65, 0x101A0);\n\nset.addRange(0x370, 0x373).addRange(0x375, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245);\nmodule.exports = set;","const set = require('regenerate')(0xAD0);\n\nset.addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9);\nmodule.exports = set;","const set = require('regenerate')(0xA3C, 0xA51, 0xA5E);\n\nset.addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76);\nmodule.exports = set;","const set = require('regenerate')(0x3005, 0x3007);\n\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x3021, 0x3029).addRange(0x3038, 0x303B).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1100, 0x11FF).addRange(0x302E, 0x302F).addRange(0x3131, 0x318E).addRange(0x3200, 0x321E).addRange(0x3260, 0x327E).addRange(0xA960, 0xA97C).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1720, 0x1734);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x108FF);\nmodule.exports = set;","const set = require('regenerate')(0xFB3E);\n\nset.addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F);\nmodule.exports = set;","const set = require('regenerate')(0x1F200);\n\nset.addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x1B001, 0x1B11F).addRange(0x1B150, 0x1B152);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10840, 0x10855).addRange(0x10857, 0x1085F);\nmodule.exports = set;","const set = require('regenerate')(0x670, 0x1CED, 0x1CF4, 0x101FD, 0x102E0, 0x1133B);\n\nset.addRange(0x300, 0x36F).addRange(0x485, 0x486).addRange(0x64B, 0x655).addRange(0x951, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20F0).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B60, 0x10B72).addRange(0x10B78, 0x10B7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B40, 0x10B55).addRange(0x10B58, 0x10B5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA980, 0xA9CD).addRange(0xA9D0, 0xA9D9).addRange(0xA9DE, 0xA9DF);\nmodule.exports = set;","const set = require('regenerate')(0x110CD);\n\nset.addRange(0x11080, 0x110C2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2);\nmodule.exports = set;","const set = require('regenerate')(0x1B000);\n\nset.addRange(0x30A1, 0x30FA).addRange(0x30FD, 0x30FF).addRange(0x31F0, 0x31FF).addRange(0x32D0, 0x32FE).addRange(0x3300, 0x3357).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B120, 0x1B122).addRange(0x1B164, 0x1B167);\nmodule.exports = set;","const set = require('regenerate')(0xA92F);\n\nset.addRange(0xA900, 0xA92D);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58);\nmodule.exports = set;","const set = require('regenerate')(0x16FE4);\n\nset.addRange(0x18B00, 0x18CD5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x19E0, 0x19FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11200, 0x11211).addRange(0x11213, 0x1123E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9);\nmodule.exports = set;","const set = require('regenerate')(0xE84, 0xEA5, 0xEC6);\n\nset.addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xBA, 0x2071, 0x207F, 0x2132, 0x214E, 0xA7D3);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C00, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C4F);\nmodule.exports = set;","const set = require('regenerate')(0x1940);\n\nset.addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x194F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA);\nmodule.exports = set;","const set = require('regenerate')(0x11FB0);\n\nset.addRange(0xA4D0, 0xA4FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10280, 0x1029C);\nmodule.exports = set;","const set = require('regenerate')(0x1093F);\n\nset.addRange(0x10920, 0x10939);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11150, 0x11176);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11EE0, 0x11EF8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F);\nmodule.exports = set;","const set = require('regenerate')(0x85E);\n\nset.addRange(0x840, 0x85B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6);\nmodule.exports = set;","const set = require('regenerate')(0x11D3A);\n\nset.addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16E40, 0x16E9A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAAE0, 0xAAF6).addRange(0xABC0, 0xABED).addRange(0xABF0, 0xABF9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x109A0, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x109FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10980, 0x1099F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11600, 0x11644).addRange(0x11650, 0x11659);\nmodule.exports = set;","const set = require('regenerate')(0x1804);\n\nset.addRange(0x1800, 0x1801).addRange(0x1806, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x11660, 0x1166C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16A6F);\nmodule.exports = set;","const set = require('regenerate')(0x11288);\n\nset.addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10880, 0x1089E).addRange(0x108A7, 0x108AF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x19DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x7FF);\nmodule.exports = set;","const set = require('regenerate')(0x16FE1);\n\nset.addRange(0x1B170, 0x1B2FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1680, 0x169C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C50, 0x1C7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10CFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10300, 0x10323).addRange(0x1032D, 0x1032F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A80, 0x10A9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10350, 0x1037A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103D5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F00, 0x10F27);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A60, 0x10A7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C00, 0x10C48);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F70, 0x10F89);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10480, 0x1049D).addRange(0x104A0, 0x104A9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10860, 0x1087F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11AC0, 0x11AF8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA840, 0xA877);\nmodule.exports = set;","const set = require('regenerate')(0x1091F);\n\nset.addRange(0x10900, 0x1091B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B80, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF);\nmodule.exports = set;","const set = require('regenerate')(0xA95F);\n\nset.addRange(0xA930, 0xA953);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x800, 0x82D).addRange(0x830, 0x83E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11180, 0x111DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10450, 0x1047F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1D800, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF);\nmodule.exports = set;","const set = require('regenerate')(0xDBD, 0xDCA, 0xDD6);\n\nset.addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0x111E1, 0x111F4);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F30, 0x10F59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A50, 0x11AA2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B80, 0x1BBF).addRange(0x1CC0, 0x1CC7);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA800, 0xA82C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A);\nmodule.exports = set;","const set = require('regenerate')(0x171F);\n\nset.addRange(0x1700, 0x1715);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA80, 0xAAC2).addRange(0xAADB, 0xAADF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9);\nmodule.exports = set;","const set = require('regenerate')(0xB9C, 0xBD0, 0xBD7, 0x11FFF);\n\nset.addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0x11FC0, 0x11FF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9);\nmodule.exports = set;","const set = require('regenerate')(0x16FE0);\n\nset.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08);\nmodule.exports = set;","const set = require('regenerate')(0xC5D);\n\nset.addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x780, 0x7B1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xE01, 0xE3A).addRange(0xE40, 0xE5B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA);\nmodule.exports = set;","const set = require('regenerate')(0x2D7F);\n\nset.addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E290, 0x1E2AE);\nmodule.exports = set;","const set = require('regenerate')(0x1039F);\n\nset.addRange(0x10380, 0x1039D);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA500, 0xA62B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC);\nmodule.exports = set;","const set = require('regenerate')(0x1E2FF);\n\nset.addRange(0x1E2C0, 0x1E2F9);\nmodule.exports = set;","const set = require('regenerate')(0x118FF);\n\nset.addRange(0x118A0, 0x118F2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA000, 0xA48C).addRange(0xA490, 0xA4C6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A00, 0x11A47);\nmodule.exports = set;","const set = require('regenerate')(0x61F, 0x640);\n\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x14400, 0x14646);\nmodule.exports = set;","const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x600, 0x604).addRange(0x606, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x102E0, 0x102FB).addRange(0x10E60, 0x10E7E).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0xFB13, 0xFB17);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA6A0, 0xA6F7).addRange(0x16800, 0x16A38);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC0, 0x1BF3).addRange(0x1BFC, 0x1BFF);\nmodule.exports = set;","const set = require('regenerate')(0x9B2, 0x9D7, 0x1CD0, 0x1CD2, 0x1CD8, 0x1CE1, 0x1CEA, 0x1CED, 0x1CF2, 0xA8F1);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0x980, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0x1CD5, 0x1CD6).addRange(0x1CF5, 0x1CF7);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C);\nmodule.exports = set;","const set = require('regenerate')(0x3030, 0x3037, 0x30FB);\n\nset.addRange(0x2EA, 0x2EB).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302A, 0x302D).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65);\nmodule.exports = set;","const set = require('regenerate')(0x1107F);\n\nset.addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2800, 0x28FF);\nmodule.exports = set;","const set = require('regenerate')(0xA9CF);\n\nset.addRange(0x1A00, 0x1A1B).addRange(0x1A1E, 0x1A1F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1735, 0x1736).addRange(0x1740, 0x1753);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1400, 0x167F).addRange(0x18B0, 0x18F5).addRange(0x11AB0, 0x11ABF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x102A0, 0x102D0);\nmodule.exports = set;","const set = require('regenerate')(0x1056F);\n\nset.addRange(0x10530, 0x10563);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x9E6, 0x9EF).addRange(0x1040, 0x1049).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FB0, 0x10FCB);\nmodule.exports = set;","const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x6DD, 0x8E2, 0xE3F, 0x3000, 0x3004, 0x3012, 0x3020, 0x3036, 0x327F, 0x33FF, 0xAB5B, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001);\n\nset.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x2000, 0x200B).addRange(0x200E, 0x202E).addRange(0x2030, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E42).addRange(0x2E44, 0x2E5D).addRange(0x2FF0, 0x2FFB).addRange(0x3248, 0x325F).addRange(0x32B1, 0x32BF).addRange(0x32CC, 0x32CF).addRange(0x3371, 0x337A).addRange(0x3380, 0x33DF).addRange(0x4DC0, 0x4DFF).addRange(0xA708, 0xA721).addRange(0xA788, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF60).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE);\nset.addRange(0xFFF9, 0xFFFD).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D372, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8);\nset.addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF).addRange(0x102E0, 0x102FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543);\nmodule.exports = set;","const set = require('regenerate')(0x10808, 0x1083C, 0x1083F);\n\nset.addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10100, 0x10101).addRange(0x12F90, 0x12FF2);\nmodule.exports = set;","const set = require('regenerate')(0x1D2B, 0x1D78, 0x1DF8, 0x2E43);\n\nset.addRange(0x400, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10400, 0x1044F);\nmodule.exports = set;","const set = require('regenerate')(0x20F0);\n\nset.addRange(0x900, 0x952).addRange(0x955, 0x97F).addRange(0x1CD0, 0x1CF6).addRange(0x1CF8, 0x1CF9).addRange(0xA830, 0xA839).addRange(0xA8E0, 0xA8FF);\nmodule.exports = set;","const set = require('regenerate')(0x11909);\n\nset.addRange(0x11900, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x96F).addRange(0xA830, 0xA839).addRange(0x11800, 0x1183B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13000, 0x1342E).addRange(0x13430, 0x13438);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10500, 0x10527);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FE0, 0x10FF6);\nmodule.exports = set;","const set = require('regenerate')(0x1258, 0x12C0);\n\nset.addRange(0x1200, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE);\nmodule.exports = set;","const set = require('regenerate')(0x10C7, 0x10CD, 0x2D27, 0x2D2D);\n\nset.addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FF).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x2D00, 0x2D25);\nmodule.exports = set;","const set = require('regenerate')(0x484, 0x487, 0x2E43, 0xA66F);\n\nset.addRange(0x2C00, 0x2C5F).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10330, 0x1034A);\nmodule.exports = set;","const set = require('regenerate')(0x1CD0, 0x20F0, 0x11350, 0x11357, 0x11FD3);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xBE6, 0xBF3).addRange(0x1CD2, 0x1CD3).addRange(0x1CF2, 0x1CF4).addRange(0x1CF8, 0x1CF9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11FD0, 0x11FD1);\nmodule.exports = set;","const set = require('regenerate')(0x342, 0x345, 0x37F, 0x384, 0x386, 0x38C, 0x1F59, 0x1F5B, 0x1F5D, 0x2126, 0xAB65, 0x101A0);\n\nset.addRange(0x370, 0x373).addRange(0x375, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1DBF, 0x1DC1).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245);\nmodule.exports = set;","const set = require('regenerate')(0xAD0);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF).addRange(0xA830, 0xA839);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9);\nmodule.exports = set;","const set = require('regenerate')(0xA3C, 0xA51, 0xA5E);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA830, 0xA839);\nmodule.exports = set;","const set = require('regenerate')(0x3030, 0x30FB, 0x32FF);\n\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x3001, 0x3003).addRange(0x3005, 0x3011).addRange(0x3013, 0x301F).addRange(0x3021, 0x302D).addRange(0x3037, 0x303F).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x3247).addRange(0x3280, 0x32B0).addRange(0x32C0, 0x32CB).addRange(0x3358, 0x3370).addRange(0x337B, 0x337F).addRange(0x33E0, 0x33FE).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xA700, 0xA707).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x1D360, 0x1D371).addRange(0x1F250, 0x1F251).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x3037, 0x30FB);\n\nset.addRange(0x1100, 0x11FF).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302E, 0x3030).addRange(0x3131, 0x318E).addRange(0x3200, 0x321E).addRange(0x3260, 0x327E).addRange(0xA960, 0xA97C).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61B, 0x61F, 0x640, 0x6D4);\n\nset.addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1720, 0x1736);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x108FF);\nmodule.exports = set;","const set = require('regenerate')(0xFB3E);\n\nset.addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F);\nmodule.exports = set;","const set = require('regenerate')(0x3037, 0xFF70, 0x1F200);\n\nset.addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x3030, 0x3035).addRange(0x303C, 0x303D).addRange(0x3041, 0x3096).addRange(0x3099, 0x30A0).addRange(0x30FB, 0x30FC).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0x1B001, 0x1B11F).addRange(0x1B150, 0x1B152);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10840, 0x10855).addRange(0x10857, 0x1085F);\nmodule.exports = set;","const set = require('regenerate')(0x1DF9, 0x101FD);\n\nset.addRange(0x300, 0x341).addRange(0x343, 0x344).addRange(0x346, 0x362).addRange(0x953, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1DC2, 0x1DF7).addRange(0x1DFB, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20EF).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B60, 0x10B72).addRange(0x10B78, 0x10B7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B40, 0x10B55).addRange(0x10B58, 0x10B5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9DF);\nmodule.exports = set;","const set = require('regenerate')(0x110CD);\n\nset.addRange(0x966, 0x96F).addRange(0xA830, 0xA839).addRange(0x11080, 0x110C2);\nmodule.exports = set;","const set = require('regenerate')(0x1CD0, 0x1CD2, 0x1CDA, 0x1CF2, 0x1CF4);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xA830, 0xA835);\nmodule.exports = set;","const set = require('regenerate')(0x3037, 0x1B000);\n\nset.addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x3030, 0x3035).addRange(0x303C, 0x303D).addRange(0x3099, 0x309C).addRange(0x30A0, 0x30FF).addRange(0x31F0, 0x31FF).addRange(0x32D0, 0x32FE).addRange(0x3300, 0x3357).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF9F).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B120, 0x1B122).addRange(0x1B164, 0x1B167);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA900, 0xA92F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58);\nmodule.exports = set;","const set = require('regenerate')(0x16FE4);\n\nset.addRange(0x18B00, 0x18CD5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x19E0, 0x19FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAE6, 0xAEF).addRange(0xA830, 0xA839).addRange(0x11200, 0x11211).addRange(0x11213, 0x1123E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9);\nmodule.exports = set;","const set = require('regenerate')(0xE84, 0xEA5, 0xEC6);\n\nset.addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xBA, 0x10FB, 0x202F, 0x2071, 0x207F, 0x20F0, 0x2132, 0x214E, 0xA7D3, 0xA92E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x363, 0x36F).addRange(0x485, 0x486).addRange(0x951, 0x952).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA700, 0xA707).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C00, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C4F);\nmodule.exports = set;","const set = require('regenerate')(0x965, 0x1940);\n\nset.addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x194F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10107, 0x10133).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F);\nmodule.exports = set;","const set = require('regenerate')(0x11FB0);\n\nset.addRange(0xA4D0, 0xA4FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10280, 0x1029C);\nmodule.exports = set;","const set = require('regenerate')(0x1093F);\n\nset.addRange(0x10920, 0x10939);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x96F).addRange(0xA830, 0xA839).addRange(0x11150, 0x11176);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11EE0, 0x11EF8);\nmodule.exports = set;","const set = require('regenerate')(0x1CDA);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F).addRange(0xA830, 0xA832);\nmodule.exports = set;","const set = require('regenerate')(0x640, 0x85E);\n\nset.addRange(0x840, 0x85B);\nmodule.exports = set;","const set = require('regenerate')(0x640);\n\nset.addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6);\nmodule.exports = set;","const set = require('regenerate')(0x11D3A);\n\nset.addRange(0x964, 0x965).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16E40, 0x16E9A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAAE0, 0xAAF6).addRange(0xABC0, 0xABED).addRange(0xABF0, 0xABF9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x109A0, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x109FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10980, 0x1099F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA830, 0xA839).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659);\nmodule.exports = set;","const set = require('regenerate')(0x202F);\n\nset.addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x11660, 0x1166C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16A6F);\nmodule.exports = set;","const set = require('regenerate')(0x11288);\n\nset.addRange(0xA66, 0xA6F).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9);\nmodule.exports = set;","const set = require('regenerate')(0xA92E);\n\nset.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10880, 0x1089E).addRange(0x108A7, 0x108AF);\nmodule.exports = set;","const set = require('regenerate')(0x1CE9, 0x1CF2, 0x1CFA);\n\nset.addRange(0x964, 0x965).addRange(0xCE6, 0xCEF).addRange(0xA830, 0xA835).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x19DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61B, 0x61F);\n\nset.addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x7FF).addRange(0xFD3E, 0xFD3F);\nmodule.exports = set;","const set = require('regenerate')(0x16FE1);\n\nset.addRange(0x1B170, 0x1B2FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1680, 0x169C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C50, 0x1C7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10CFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10300, 0x10323).addRange(0x1032D, 0x1032F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A80, 0x10A9F);\nmodule.exports = set;","const set = require('regenerate')(0x483);\n\nset.addRange(0x10350, 0x1037A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103D5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F00, 0x10F27);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A60, 0x10A7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C00, 0x10C48);\nmodule.exports = set;","const set = require('regenerate')(0x640, 0x10AF2);\n\nset.addRange(0x10F70, 0x10F89);\nmodule.exports = set;","const set = require('regenerate')(0x1CDA, 0x1CF2);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10480, 0x1049D).addRange(0x104A0, 0x104A9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10860, 0x1087F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11AC0, 0x11AF8);\nmodule.exports = set;","const set = require('regenerate')(0x1805);\n\nset.addRange(0x1802, 0x1803).addRange(0xA840, 0xA877);\nmodule.exports = set;","const set = require('regenerate')(0x1091F);\n\nset.addRange(0x10900, 0x1091B);\nmodule.exports = set;","const set = require('regenerate')(0x640);\n\nset.addRange(0x10B80, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF);\nmodule.exports = set;","const set = require('regenerate')(0xA95F);\n\nset.addRange(0xA930, 0xA953);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x800, 0x82D).addRange(0x830, 0x83E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9);\nmodule.exports = set;","const set = require('regenerate')(0x951, 0x1CD7, 0x1CD9, 0x1CE0);\n\nset.addRange(0x1CDC, 0x1CDD).addRange(0x11180, 0x111DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10450, 0x1047F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1D800, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF);\nmodule.exports = set;","const set = require('regenerate')(0xDBD, 0xDCA, 0xDD6);\n\nset.addRange(0x964, 0x965).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0x111E1, 0x111F4);\nmodule.exports = set;","const set = require('regenerate')(0x640);\n\nset.addRange(0x10F30, 0x10F59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A50, 0x11AA2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B80, 0x1BBF).addRange(0x1CC0, 0x1CC7);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0x9E6, 0x9EF).addRange(0xA800, 0xA82C);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61F, 0x640, 0x670, 0x1DF8, 0x1DFA);\n\nset.addRange(0x61B, 0x61C).addRange(0x64B, 0x655).addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A);\nmodule.exports = set;","const set = require('regenerate')(0x171F);\n\nset.addRange(0x1700, 0x1715).addRange(0x1735, 0x1736);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1735, 0x1736).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1040, 0x1049).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA80, 0xAAC2).addRange(0xAADB, 0xAADF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9);\nmodule.exports = set;","const set = require('regenerate')(0xB9C, 0xBD0, 0xBD7, 0x1CDA, 0xA8F3, 0x11301, 0x11303, 0x11FFF);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0x1133B, 0x1133C).addRange(0x11FC0, 0x11FF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9);\nmodule.exports = set;","const set = require('regenerate')(0x16FE0);\n\nset.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08);\nmodule.exports = set;","const set = require('regenerate')(0xC5D, 0x1CDA, 0x1CF2);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC7F);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61F, 0xFDF2, 0xFDFD);\n\nset.addRange(0x61B, 0x61C).addRange(0x660, 0x669).addRange(0x780, 0x7B1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xE01, 0xE3A).addRange(0xE40, 0xE5B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA);\nmodule.exports = set;","const set = require('regenerate')(0x2D7F);\n\nset.addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70);\nmodule.exports = set;","const set = require('regenerate')(0x1CF2);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E290, 0x1E2AE);\nmodule.exports = set;","const set = require('regenerate')(0x1039F);\n\nset.addRange(0x10380, 0x1039D);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA500, 0xA62B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC);\nmodule.exports = set;","const set = require('regenerate')(0x1E2FF);\n\nset.addRange(0x1E2C0, 0x1E2F9);\nmodule.exports = set;","const set = require('regenerate')(0x118FF);\n\nset.addRange(0x118A0, 0x118F2);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61B, 0x61F);\n\nset.addRange(0x660, 0x669).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1);\nmodule.exports = set;","const set = require('regenerate')(0x30FB);\n\nset.addRange(0x3001, 0x3002).addRange(0x3008, 0x3011).addRange(0x3014, 0x301B).addRange(0xA000, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xFF61, 0xFF65);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A00, 0x11A47);\nmodule.exports = set;","module.exports = new Map([['General_Category', ['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', 'Number', 'Open_Punctuation', 'Other', 'Other_Letter', 'Other_Number', 'Other_Punctuation', 'Other_Symbol', 'Paragraph_Separator', 'Private_Use', 'Punctuation', 'Separator', 'Space_Separator', 'Spacing_Mark', 'Surrogate', 'Symbol', 'Titlecase_Letter', 'Unassigned', 'Uppercase_Letter']], ['Script', ['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', 'Chorasmian', 'Common', 'Coptic', 'Cuneiform', 'Cypriot', 'Cypro_Minoan', 'Cyrillic', 'Deseret', 'Devanagari', 'Dives_Akuru', 'Dogra', 'Duployan', 'Egyptian_Hieroglyphs', 'Elbasan', 'Elymaic', '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', 'Khitan_Small_Script', 'Khmer', 'Khojki', 'Khudawadi', 'Lao', 'Latin', 'Lepcha', 'Limbu', 'Linear_A', 'Linear_B', 'Lisu', 'Lycian', 'Lydian', 'Mahajani', 'Makasar', 'Malayalam', 'Mandaic', 'Manichaean', 'Marchen', 'Masaram_Gondi', 'Medefaidrin', 'Meetei_Mayek', 'Mende_Kikakui', 'Meroitic_Cursive', 'Meroitic_Hieroglyphs', 'Miao', 'Modi', 'Mongolian', 'Mro', 'Multani', 'Myanmar', 'Nabataean', 'Nandinagari', 'New_Tai_Lue', 'Newa', 'Nko', 'Nushu', 'Nyiakeng_Puachue_Hmong', 'Ogham', 'Ol_Chiki', 'Old_Hungarian', 'Old_Italic', 'Old_North_Arabian', 'Old_Permic', 'Old_Persian', 'Old_Sogdian', 'Old_South_Arabian', 'Old_Turkic', 'Old_Uyghur', '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', 'Tangsa', 'Tangut', 'Telugu', 'Thaana', 'Thai', 'Tibetan', 'Tifinagh', 'Tirhuta', 'Toto', 'Ugaritic', 'Vai', 'Vithkuqi', 'Wancho', 'Warang_Citi', 'Yezidi', 'Yi', 'Zanabazar_Square']], ['Script_Extensions', ['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', 'Chorasmian', 'Common', 'Coptic', 'Cuneiform', 'Cypriot', 'Cypro_Minoan', 'Cyrillic', 'Deseret', 'Devanagari', 'Dives_Akuru', 'Dogra', 'Duployan', 'Egyptian_Hieroglyphs', 'Elbasan', 'Elymaic', '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', 'Khitan_Small_Script', 'Khmer', 'Khojki', 'Khudawadi', 'Lao', 'Latin', 'Lepcha', 'Limbu', 'Linear_A', 'Linear_B', 'Lisu', 'Lycian', 'Lydian', 'Mahajani', 'Makasar', 'Malayalam', 'Mandaic', 'Manichaean', 'Marchen', 'Masaram_Gondi', 'Medefaidrin', 'Meetei_Mayek', 'Mende_Kikakui', 'Meroitic_Cursive', 'Meroitic_Hieroglyphs', 'Miao', 'Modi', 'Mongolian', 'Mro', 'Multani', 'Myanmar', 'Nabataean', 'Nandinagari', 'New_Tai_Lue', 'Newa', 'Nko', 'Nushu', 'Nyiakeng_Puachue_Hmong', 'Ogham', 'Ol_Chiki', 'Old_Hungarian', 'Old_Italic', 'Old_North_Arabian', 'Old_Permic', 'Old_Persian', 'Old_Sogdian', 'Old_South_Arabian', 'Old_Turkic', 'Old_Uyghur', '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', 'Tangsa', 'Tangut', 'Telugu', 'Thaana', 'Thai', 'Tibetan', 'Tifinagh', 'Tirhuta', 'Toto', 'Ugaritic', 'Vai', 'Vithkuqi', 'Wancho', 'Warang_Citi', 'Yezidi', 'Yi', 'Zanabazar_Square']], ['Binary_Property', ['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', 'Math', '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']]]);","module.exports = '14.0.0';","// Generated using `npm run build`. Do not edit.\n'use strict';\n\nconst regenerate = require('regenerate');\n\nexports.REGULAR = new Map([['d', regenerate().addRange(0x30, 0x39)], ['D', regenerate().addRange(0x0, 0x2F).addRange(0x3A, 0xFFFF)], ['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF).addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029)], ['S', regenerate().addRange(0x0, 0x8).addRange(0xE, 0x1F).addRange(0x21, 0x9F).addRange(0xA1, 0x167F).addRange(0x1681, 0x1FFF).addRange(0x200B, 0x2027).addRange(0x202A, 0x202E).addRange(0x2030, 0x205E).addRange(0x2060, 0x2FFF).addRange(0x3001, 0xFEFE).addRange(0xFF00, 0xFFFF)], ['w', regenerate(0x5F).addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A)], ['W', regenerate(0x60).addRange(0x0, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0xFFFF)]]);\nexports.UNICODE = new Map([['d', regenerate().addRange(0x30, 0x39)], ['D', regenerate().addRange(0x0, 0x2F).addRange(0x3A, 0x10FFFF)], ['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF).addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029)], ['S', regenerate().addRange(0x0, 0x8).addRange(0xE, 0x1F).addRange(0x21, 0x9F).addRange(0xA1, 0x167F).addRange(0x1681, 0x1FFF).addRange(0x200B, 0x2027).addRange(0x202A, 0x202E).addRange(0x2030, 0x205E).addRange(0x2060, 0x2FFF).addRange(0x3001, 0xFEFE).addRange(0xFF00, 0x10FFFF)], ['w', regenerate(0x5F).addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A)], ['W', regenerate(0x60).addRange(0x0, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0x10FFFF)]]);\nexports.UNICODE_IGNORE_CASE = new Map([['d', regenerate().addRange(0x30, 0x39)], ['D', regenerate().addRange(0x0, 0x2F).addRange(0x3A, 0x10FFFF)], ['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF).addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029)], ['S', regenerate().addRange(0x0, 0x8).addRange(0xE, 0x1F).addRange(0x21, 0x9F).addRange(0xA1, 0x167F).addRange(0x1681, 0x1FFF).addRange(0x200B, 0x2027).addRange(0x202A, 0x202E).addRange(0x2030, 0x205E).addRange(0x2060, 0x2FFF).addRange(0x3001, 0xFEFE).addRange(0xFF00, 0x10FFFF)], ['w', regenerate(0x5F, 0x17F, 0x212A).addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A)], ['W', regenerate(0x60).addRange(0x0, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0x17E).addRange(0x180, 0x2129).addRange(0x212B, 0x10FFFF)]]);","module.exports = new Map([[0x4B, 0x212A], [0x53, 0x17F], [0x6B, 0x212A], [0x73, 0x17F], [0xB5, 0x39C], [0xC5, 0x212B], [0xDF, 0x1E9E], [0xE5, 0x212B], [0x17F, 0x53], [0x1C4, 0x1C5], [0x1C5, 0x1C4], [0x1C7, 0x1C8], [0x1C8, 0x1C7], [0x1CA, 0x1CB], [0x1CB, 0x1CA], [0x1F1, 0x1F2], [0x1F2, 0x1F1], [0x345, 0x1FBE], [0x392, 0x3D0], [0x395, 0x3F5], [0x398, 0x3F4], [0x399, 0x1FBE], [0x39A, 0x3F0], [0x39C, 0xB5], [0x3A0, 0x3D6], [0x3A1, 0x3F1], [0x3A3, 0x3C2], [0x3A6, 0x3D5], [0x3A9, 0x2126], [0x3B8, 0x3F4], [0x3C2, 0x3A3], [0x3C9, 0x2126], [0x3D0, 0x392], [0x3D1, 0x3F4], [0x3D5, 0x3A6], [0x3D6, 0x3A0], [0x3F0, 0x39A], [0x3F1, 0x3A1], [0x3F4, [0x398, 0x3D1, 0x3B8]], [0x3F5, 0x395], [0x412, 0x1C80], [0x414, 0x1C81], [0x41E, 0x1C82], [0x421, 0x1C83], [0x422, 0x1C85], [0x42A, 0x1C86], [0x462, 0x1C87], [0x1C80, 0x412], [0x1C81, 0x414], [0x1C82, 0x41E], [0x1C83, 0x421], [0x1C84, 0x1C85], [0x1C85, [0x422, 0x1C84]], [0x1C86, 0x42A], [0x1C87, 0x462], [0x1C88, 0xA64A], [0x1E60, 0x1E9B], [0x1E9B, 0x1E60], [0x1E9E, 0xDF], [0x1F80, 0x1F88], [0x1F81, 0x1F89], [0x1F82, 0x1F8A], [0x1F83, 0x1F8B], [0x1F84, 0x1F8C], [0x1F85, 0x1F8D], [0x1F86, 0x1F8E], [0x1F87, 0x1F8F], [0x1F88, 0x1F80], [0x1F89, 0x1F81], [0x1F8A, 0x1F82], [0x1F8B, 0x1F83], [0x1F8C, 0x1F84], [0x1F8D, 0x1F85], [0x1F8E, 0x1F86], [0x1F8F, 0x1F87], [0x1F90, 0x1F98], [0x1F91, 0x1F99], [0x1F92, 0x1F9A], [0x1F93, 0x1F9B], [0x1F94, 0x1F9C], [0x1F95, 0x1F9D], [0x1F96, 0x1F9E], [0x1F97, 0x1F9F], [0x1F98, 0x1F90], [0x1F99, 0x1F91], [0x1F9A, 0x1F92], [0x1F9B, 0x1F93], [0x1F9C, 0x1F94], [0x1F9D, 0x1F95], [0x1F9E, 0x1F96], [0x1F9F, 0x1F97], [0x1FA0, 0x1FA8], [0x1FA1, 0x1FA9], [0x1FA2, 0x1FAA], [0x1FA3, 0x1FAB], [0x1FA4, 0x1FAC], [0x1FA5, 0x1FAD], [0x1FA6, 0x1FAE], [0x1FA7, 0x1FAF], [0x1FA8, 0x1FA0], [0x1FA9, 0x1FA1], [0x1FAA, 0x1FA2], [0x1FAB, 0x1FA3], [0x1FAC, 0x1FA4], [0x1FAD, 0x1FA5], [0x1FAE, 0x1FA6], [0x1FAF, 0x1FA7], [0x1FB3, 0x1FBC], [0x1FBC, 0x1FB3], [0x1FBE, [0x345, 0x399]], [0x1FC3, 0x1FCC], [0x1FCC, 0x1FC3], [0x1FF3, 0x1FFC], [0x1FFC, 0x1FF3], [0x2126, [0x3A9, 0x3C9]], [0x212A, 0x4B], [0x212B, [0xC5, 0xE5]], [0x2C2F, 0x2C5F], [0x2C5F, 0x2C2F], [0xA64A, 0x1C88], [0xA7C0, 0xA7C1], [0xA7C1, 0xA7C0], [0xA7D0, 0xA7D1], [0xA7D1, 0xA7D0], [0xA7D6, 0xA7D7], [0xA7D7, 0xA7D6], [0xA7D8, 0xA7D9], [0xA7D9, 0xA7D8], [0x10400, 0x10428], [0x10401, 0x10429], [0x10402, 0x1042A], [0x10403, 0x1042B], [0x10404, 0x1042C], [0x10405, 0x1042D], [0x10406, 0x1042E], [0x10407, 0x1042F], [0x10408, 0x10430], [0x10409, 0x10431], [0x1040A, 0x10432], [0x1040B, 0x10433], [0x1040C, 0x10434], [0x1040D, 0x10435], [0x1040E, 0x10436], [0x1040F, 0x10437], [0x10410, 0x10438], [0x10411, 0x10439], [0x10412, 0x1043A], [0x10413, 0x1043B], [0x10414, 0x1043C], [0x10415, 0x1043D], [0x10416, 0x1043E], [0x10417, 0x1043F], [0x10418, 0x10440], [0x10419, 0x10441], [0x1041A, 0x10442], [0x1041B, 0x10443], [0x1041C, 0x10444], [0x1041D, 0x10445], [0x1041E, 0x10446], [0x1041F, 0x10447], [0x10420, 0x10448], [0x10421, 0x10449], [0x10422, 0x1044A], [0x10423, 0x1044B], [0x10424, 0x1044C], [0x10425, 0x1044D], [0x10426, 0x1044E], [0x10427, 0x1044F], [0x10428, 0x10400], [0x10429, 0x10401], [0x1042A, 0x10402], [0x1042B, 0x10403], [0x1042C, 0x10404], [0x1042D, 0x10405], [0x1042E, 0x10406], [0x1042F, 0x10407], [0x10430, 0x10408], [0x10431, 0x10409], [0x10432, 0x1040A], [0x10433, 0x1040B], [0x10434, 0x1040C], [0x10435, 0x1040D], [0x10436, 0x1040E], [0x10437, 0x1040F], [0x10438, 0x10410], [0x10439, 0x10411], [0x1043A, 0x10412], [0x1043B, 0x10413], [0x1043C, 0x10414], [0x1043D, 0x10415], [0x1043E, 0x10416], [0x1043F, 0x10417], [0x10440, 0x10418], [0x10441, 0x10419], [0x10442, 0x1041A], [0x10443, 0x1041B], [0x10444, 0x1041C], [0x10445, 0x1041D], [0x10446, 0x1041E], [0x10447, 0x1041F], [0x10448, 0x10420], [0x10449, 0x10421], [0x1044A, 0x10422], [0x1044B, 0x10423], [0x1044C, 0x10424], [0x1044D, 0x10425], [0x1044E, 0x10426], [0x1044F, 0x10427], [0x104B0, 0x104D8], [0x104B1, 0x104D9], [0x104B2, 0x104DA], [0x104B3, 0x104DB], [0x104B4, 0x104DC], [0x104B5, 0x104DD], [0x104B6, 0x104DE], [0x104B7, 0x104DF], [0x104B8, 0x104E0], [0x104B9, 0x104E1], [0x104BA, 0x104E2], [0x104BB, 0x104E3], [0x104BC, 0x104E4], [0x104BD, 0x104E5], [0x104BE, 0x104E6], [0x104BF, 0x104E7], [0x104C0, 0x104E8], [0x104C1, 0x104E9], [0x104C2, 0x104EA], [0x104C3, 0x104EB], [0x104C4, 0x104EC], [0x104C5, 0x104ED], [0x104C6, 0x104EE], [0x104C7, 0x104EF], [0x104C8, 0x104F0], [0x104C9, 0x104F1], [0x104CA, 0x104F2], [0x104CB, 0x104F3], [0x104CC, 0x104F4], [0x104CD, 0x104F5], [0x104CE, 0x104F6], [0x104CF, 0x104F7], [0x104D0, 0x104F8], [0x104D1, 0x104F9], [0x104D2, 0x104FA], [0x104D3, 0x104FB], [0x104D8, 0x104B0], [0x104D9, 0x104B1], [0x104DA, 0x104B2], [0x104DB, 0x104B3], [0x104DC, 0x104B4], [0x104DD, 0x104B5], [0x104DE, 0x104B6], [0x104DF, 0x104B7], [0x104E0, 0x104B8], [0x104E1, 0x104B9], [0x104E2, 0x104BA], [0x104E3, 0x104BB], [0x104E4, 0x104BC], [0x104E5, 0x104BD], [0x104E6, 0x104BE], [0x104E7, 0x104BF], [0x104E8, 0x104C0], [0x104E9, 0x104C1], [0x104EA, 0x104C2], [0x104EB, 0x104C3], [0x104EC, 0x104C4], [0x104ED, 0x104C5], [0x104EE, 0x104C6], [0x104EF, 0x104C7], [0x104F0, 0x104C8], [0x104F1, 0x104C9], [0x104F2, 0x104CA], [0x104F3, 0x104CB], [0x104F4, 0x104CC], [0x104F5, 0x104CD], [0x104F6, 0x104CE], [0x104F7, 0x104CF], [0x104F8, 0x104D0], [0x104F9, 0x104D1], [0x104FA, 0x104D2], [0x104FB, 0x104D3], [0x10570, 0x10597], [0x10571, 0x10598], [0x10572, 0x10599], [0x10573, 0x1059A], [0x10574, 0x1059B], [0x10575, 0x1059C], [0x10576, 0x1059D], [0x10577, 0x1059E], [0x10578, 0x1059F], [0x10579, 0x105A0], [0x1057A, 0x105A1], [0x1057C, 0x105A3], [0x1057D, 0x105A4], [0x1057E, 0x105A5], [0x1057F, 0x105A6], [0x10580, 0x105A7], [0x10581, 0x105A8], [0x10582, 0x105A9], [0x10583, 0x105AA], [0x10584, 0x105AB], [0x10585, 0x105AC], [0x10586, 0x105AD], [0x10587, 0x105AE], [0x10588, 0x105AF], [0x10589, 0x105B0], [0x1058A, 0x105B1], [0x1058C, 0x105B3], [0x1058D, 0x105B4], [0x1058E, 0x105B5], [0x1058F, 0x105B6], [0x10590, 0x105B7], [0x10591, 0x105B8], [0x10592, 0x105B9], [0x10594, 0x105BB], [0x10595, 0x105BC], [0x10597, 0x10570], [0x10598, 0x10571], [0x10599, 0x10572], [0x1059A, 0x10573], [0x1059B, 0x10574], [0x1059C, 0x10575], [0x1059D, 0x10576], [0x1059E, 0x10577], [0x1059F, 0x10578], [0x105A0, 0x10579], [0x105A1, 0x1057A], [0x105A3, 0x1057C], [0x105A4, 0x1057D], [0x105A5, 0x1057E], [0x105A6, 0x1057F], [0x105A7, 0x10580], [0x105A8, 0x10581], [0x105A9, 0x10582], [0x105AA, 0x10583], [0x105AB, 0x10584], [0x105AC, 0x10585], [0x105AD, 0x10586], [0x105AE, 0x10587], [0x105AF, 0x10588], [0x105B0, 0x10589], [0x105B1, 0x1058A], [0x105B3, 0x1058C], [0x105B4, 0x1058D], [0x105B5, 0x1058E], [0x105B6, 0x1058F], [0x105B7, 0x10590], [0x105B8, 0x10591], [0x105B9, 0x10592], [0x105BB, 0x10594], [0x105BC, 0x10595], [0x10C80, 0x10CC0], [0x10C81, 0x10CC1], [0x10C82, 0x10CC2], [0x10C83, 0x10CC3], [0x10C84, 0x10CC4], [0x10C85, 0x10CC5], [0x10C86, 0x10CC6], [0x10C87, 0x10CC7], [0x10C88, 0x10CC8], [0x10C89, 0x10CC9], [0x10C8A, 0x10CCA], [0x10C8B, 0x10CCB], [0x10C8C, 0x10CCC], [0x10C8D, 0x10CCD], [0x10C8E, 0x10CCE], [0x10C8F, 0x10CCF], [0x10C90, 0x10CD0], [0x10C91, 0x10CD1], [0x10C92, 0x10CD2], [0x10C93, 0x10CD3], [0x10C94, 0x10CD4], [0x10C95, 0x10CD5], [0x10C96, 0x10CD6], [0x10C97, 0x10CD7], [0x10C98, 0x10CD8], [0x10C99, 0x10CD9], [0x10C9A, 0x10CDA], [0x10C9B, 0x10CDB], [0x10C9C, 0x10CDC], [0x10C9D, 0x10CDD], [0x10C9E, 0x10CDE], [0x10C9F, 0x10CDF], [0x10CA0, 0x10CE0], [0x10CA1, 0x10CE1], [0x10CA2, 0x10CE2], [0x10CA3, 0x10CE3], [0x10CA4, 0x10CE4], [0x10CA5, 0x10CE5], [0x10CA6, 0x10CE6], [0x10CA7, 0x10CE7], [0x10CA8, 0x10CE8], [0x10CA9, 0x10CE9], [0x10CAA, 0x10CEA], [0x10CAB, 0x10CEB], [0x10CAC, 0x10CEC], [0x10CAD, 0x10CED], [0x10CAE, 0x10CEE], [0x10CAF, 0x10CEF], [0x10CB0, 0x10CF0], [0x10CB1, 0x10CF1], [0x10CB2, 0x10CF2], [0x10CC0, 0x10C80], [0x10CC1, 0x10C81], [0x10CC2, 0x10C82], [0x10CC3, 0x10C83], [0x10CC4, 0x10C84], [0x10CC5, 0x10C85], [0x10CC6, 0x10C86], [0x10CC7, 0x10C87], [0x10CC8, 0x10C88], [0x10CC9, 0x10C89], [0x10CCA, 0x10C8A], [0x10CCB, 0x10C8B], [0x10CCC, 0x10C8C], [0x10CCD, 0x10C8D], [0x10CCE, 0x10C8E], [0x10CCF, 0x10C8F], [0x10CD0, 0x10C90], [0x10CD1, 0x10C91], [0x10CD2, 0x10C92], [0x10CD3, 0x10C93], [0x10CD4, 0x10C94], [0x10CD5, 0x10C95], [0x10CD6, 0x10C96], [0x10CD7, 0x10C97], [0x10CD8, 0x10C98], [0x10CD9, 0x10C99], [0x10CDA, 0x10C9A], [0x10CDB, 0x10C9B], [0x10CDC, 0x10C9C], [0x10CDD, 0x10C9D], [0x10CDE, 0x10C9E], [0x10CDF, 0x10C9F], [0x10CE0, 0x10CA0], [0x10CE1, 0x10CA1], [0x10CE2, 0x10CA2], [0x10CE3, 0x10CA3], [0x10CE4, 0x10CA4], [0x10CE5, 0x10CA5], [0x10CE6, 0x10CA6], [0x10CE7, 0x10CA7], [0x10CE8, 0x10CA8], [0x10CE9, 0x10CA9], [0x10CEA, 0x10CAA], [0x10CEB, 0x10CAB], [0x10CEC, 0x10CAC], [0x10CED, 0x10CAD], [0x10CEE, 0x10CAE], [0x10CEF, 0x10CAF], [0x10CF0, 0x10CB0], [0x10CF1, 0x10CB1], [0x10CF2, 0x10CB2], [0x118A0, 0x118C0], [0x118A1, 0x118C1], [0x118A2, 0x118C2], [0x118A3, 0x118C3], [0x118A4, 0x118C4], [0x118A5, 0x118C5], [0x118A6, 0x118C6], [0x118A7, 0x118C7], [0x118A8, 0x118C8], [0x118A9, 0x118C9], [0x118AA, 0x118CA], [0x118AB, 0x118CB], [0x118AC, 0x118CC], [0x118AD, 0x118CD], [0x118AE, 0x118CE], [0x118AF, 0x118CF], [0x118B0, 0x118D0], [0x118B1, 0x118D1], [0x118B2, 0x118D2], [0x118B3, 0x118D3], [0x118B4, 0x118D4], [0x118B5, 0x118D5], [0x118B6, 0x118D6], [0x118B7, 0x118D7], [0x118B8, 0x118D8], [0x118B9, 0x118D9], [0x118BA, 0x118DA], [0x118BB, 0x118DB], [0x118BC, 0x118DC], [0x118BD, 0x118DD], [0x118BE, 0x118DE], [0x118BF, 0x118DF], [0x118C0, 0x118A0], [0x118C1, 0x118A1], [0x118C2, 0x118A2], [0x118C3, 0x118A3], [0x118C4, 0x118A4], [0x118C5, 0x118A5], [0x118C6, 0x118A6], [0x118C7, 0x118A7], [0x118C8, 0x118A8], [0x118C9, 0x118A9], [0x118CA, 0x118AA], [0x118CB, 0x118AB], [0x118CC, 0x118AC], [0x118CD, 0x118AD], [0x118CE, 0x118AE], [0x118CF, 0x118AF], [0x118D0, 0x118B0], [0x118D1, 0x118B1], [0x118D2, 0x118B2], [0x118D3, 0x118B3], [0x118D4, 0x118B4], [0x118D5, 0x118B5], [0x118D6, 0x118B6], [0x118D7, 0x118B7], [0x118D8, 0x118B8], [0x118D9, 0x118B9], [0x118DA, 0x118BA], [0x118DB, 0x118BB], [0x118DC, 0x118BC], [0x118DD, 0x118BD], [0x118DE, 0x118BE], [0x118DF, 0x118BF], [0x16E40, 0x16E60], [0x16E41, 0x16E61], [0x16E42, 0x16E62], [0x16E43, 0x16E63], [0x16E44, 0x16E64], [0x16E45, 0x16E65], [0x16E46, 0x16E66], [0x16E47, 0x16E67], [0x16E48, 0x16E68], [0x16E49, 0x16E69], [0x16E4A, 0x16E6A], [0x16E4B, 0x16E6B], [0x16E4C, 0x16E6C], [0x16E4D, 0x16E6D], [0x16E4E, 0x16E6E], [0x16E4F, 0x16E6F], [0x16E50, 0x16E70], [0x16E51, 0x16E71], [0x16E52, 0x16E72], [0x16E53, 0x16E73], [0x16E54, 0x16E74], [0x16E55, 0x16E75], [0x16E56, 0x16E76], [0x16E57, 0x16E77], [0x16E58, 0x16E78], [0x16E59, 0x16E79], [0x16E5A, 0x16E7A], [0x16E5B, 0x16E7B], [0x16E5C, 0x16E7C], [0x16E5D, 0x16E7D], [0x16E5E, 0x16E7E], [0x16E5F, 0x16E7F], [0x16E60, 0x16E40], [0x16E61, 0x16E41], [0x16E62, 0x16E42], [0x16E63, 0x16E43], [0x16E64, 0x16E44], [0x16E65, 0x16E45], [0x16E66, 0x16E46], [0x16E67, 0x16E47], [0x16E68, 0x16E48], [0x16E69, 0x16E49], [0x16E6A, 0x16E4A], [0x16E6B, 0x16E4B], [0x16E6C, 0x16E4C], [0x16E6D, 0x16E4D], [0x16E6E, 0x16E4E], [0x16E6F, 0x16E4F], [0x16E70, 0x16E50], [0x16E71, 0x16E51], [0x16E72, 0x16E52], [0x16E73, 0x16E53], [0x16E74, 0x16E54], [0x16E75, 0x16E55], [0x16E76, 0x16E56], [0x16E77, 0x16E57], [0x16E78, 0x16E58], [0x16E79, 0x16E59], [0x16E7A, 0x16E5A], [0x16E7B, 0x16E5B], [0x16E7C, 0x16E5C], [0x16E7D, 0x16E5D], [0x16E7E, 0x16E5E], [0x16E7F, 0x16E5F], [0x1E900, 0x1E922], [0x1E901, 0x1E923], [0x1E902, 0x1E924], [0x1E903, 0x1E925], [0x1E904, 0x1E926], [0x1E905, 0x1E927], [0x1E906, 0x1E928], [0x1E907, 0x1E929], [0x1E908, 0x1E92A], [0x1E909, 0x1E92B], [0x1E90A, 0x1E92C], [0x1E90B, 0x1E92D], [0x1E90C, 0x1E92E], [0x1E90D, 0x1E92F], [0x1E90E, 0x1E930], [0x1E90F, 0x1E931], [0x1E910, 0x1E932], [0x1E911, 0x1E933], [0x1E912, 0x1E934], [0x1E913, 0x1E935], [0x1E914, 0x1E936], [0x1E915, 0x1E937], [0x1E916, 0x1E938], [0x1E917, 0x1E939], [0x1E918, 0x1E93A], [0x1E919, 0x1E93B], [0x1E91A, 0x1E93C], [0x1E91B, 0x1E93D], [0x1E91C, 0x1E93E], [0x1E91D, 0x1E93F], [0x1E91E, 0x1E940], [0x1E91F, 0x1E941], [0x1E920, 0x1E942], [0x1E921, 0x1E943], [0x1E922, 0x1E900], [0x1E923, 0x1E901], [0x1E924, 0x1E902], [0x1E925, 0x1E903], [0x1E926, 0x1E904], [0x1E927, 0x1E905], [0x1E928, 0x1E906], [0x1E929, 0x1E907], [0x1E92A, 0x1E908], [0x1E92B, 0x1E909], [0x1E92C, 0x1E90A], [0x1E92D, 0x1E90B], [0x1E92E, 0x1E90C], [0x1E92F, 0x1E90D], [0x1E930, 0x1E90E], [0x1E931, 0x1E90F], [0x1E932, 0x1E910], [0x1E933, 0x1E911], [0x1E934, 0x1E912], [0x1E935, 0x1E913], [0x1E936, 0x1E914], [0x1E937, 0x1E915], [0x1E938, 0x1E916], [0x1E939, 0x1E917], [0x1E93A, 0x1E918], [0x1E93B, 0x1E919], [0x1E93C, 0x1E91A], [0x1E93D, 0x1E91B], [0x1E93E, 0x1E91C], [0x1E93F, 0x1E91D], [0x1E940, 0x1E91E], [0x1E941, 0x1E91F], [0x1E942, 0x1E920], [0x1E943, 0x1E921]]);","'use strict';\n\nconst generate = require('regjsgen').generate;\n\nconst parse = require('regjsparser').parse;\n\nconst regenerate = require('regenerate');\n\nconst unicodeMatchProperty = require('unicode-match-property-ecmascript');\n\nconst unicodeMatchPropertyValue = require('unicode-match-property-value-ecmascript');\n\nconst iuMappings = require('./data/iu-mappings.js');\n\nconst ESCAPE_SETS = require('./data/character-class-escape-sets.js'); // Prepare a Regenerate set containing all code points, used for negative\n// character classes (if any).\n\n\nconst UNICODE_SET = regenerate().addRange(0x0, 0x10FFFF); // Without the `u` flag, the range stops at 0xFFFF.\n// https://mths.be/es6#sec-pattern-semantics\n\nconst BMP_SET = regenerate().addRange(0x0, 0xFFFF); // Prepare a Regenerate set containing all code points that are supposed to be\n// matched by `/./u`. https://mths.be/es6#sec-atom\n\nconst DOT_SET_UNICODE = UNICODE_SET.clone() // all Unicode code points\n.remove( // minus `LineTerminator`s (https://mths.be/es6#sec-line-terminators):\n0x000A, // Line Feed \n0x000D, // Carriage Return \n0x2028, // Line Separator \n0x2029 // Paragraph Separator \n);\n\nconst getCharacterClassEscapeSet = (character, unicode, ignoreCase) => {\n if (unicode) {\n if (ignoreCase) {\n return ESCAPE_SETS.UNICODE_IGNORE_CASE.get(character);\n }\n\n return ESCAPE_SETS.UNICODE.get(character);\n }\n\n return ESCAPE_SETS.REGULAR.get(character);\n};\n\nconst getUnicodeDotSet = dotAll => {\n return dotAll ? UNICODE_SET : DOT_SET_UNICODE;\n};\n\nconst getUnicodePropertyValueSet = (property, value) => {\n const path = value ? \"\".concat(property, \"/\").concat(value) : \"Binary_Property/\".concat(property);\n\n try {\n return require(\"regenerate-unicode-properties/\".concat(path, \".js\"));\n } catch (exception) {\n throw new Error(\"Failed to recognize value `\".concat(value, \"` for property \") + \"`\".concat(property, \"`.\"));\n }\n};\n\nconst handleLoneUnicodePropertyNameOrValue = value => {\n // It could be a `General_Category` value or a binary property.\n // Note: `unicodeMatchPropertyValue` throws on invalid values.\n try {\n const property = 'General_Category';\n const category = unicodeMatchPropertyValue(property, value);\n return getUnicodePropertyValueSet(property, category);\n } catch (exception) {} // It’s not a `General_Category` value, so check if it’s a binary\n // property. Note: `unicodeMatchProperty` throws on invalid properties.\n\n\n const property = unicodeMatchProperty(value);\n return getUnicodePropertyValueSet(property);\n};\n\nconst getUnicodePropertyEscapeSet = (value, isNegative) => {\n const parts = value.split('=');\n const firstPart = parts[0];\n let set;\n\n if (parts.length == 1) {\n set = handleLoneUnicodePropertyNameOrValue(firstPart);\n } else {\n // The pattern consists of two parts, i.e. `Property=Value`.\n const property = unicodeMatchProperty(firstPart);\n const value = unicodeMatchPropertyValue(property, parts[1]);\n set = getUnicodePropertyValueSet(property, value);\n }\n\n if (isNegative) {\n return UNICODE_SET.clone().remove(set);\n }\n\n return set.clone();\n}; // Given a range of code points, add any case-folded code points in that range\n// to a set.\n\n\nregenerate.prototype.iuAddRange = function (min, max) {\n const $this = this;\n\n do {\n const folded = caseFold(min);\n\n if (folded) {\n $this.add(folded);\n }\n } while (++min <= max);\n\n return $this;\n};\n\nconst update = (item, pattern) => {\n let tree = parse(pattern, config.useUnicodeFlag ? 'u' : '');\n\n switch (tree.type) {\n case 'characterClass':\n case 'group':\n case 'value':\n // No wrapping needed.\n break;\n\n default:\n // Wrap the pattern in a non-capturing group.\n tree = wrap(tree, pattern);\n }\n\n Object.assign(item, tree);\n};\n\nconst wrap = (tree, pattern) => {\n // Wrap the pattern in a non-capturing group.\n return {\n 'type': 'group',\n 'behavior': 'ignore',\n 'body': [tree],\n 'raw': \"(?:\".concat(pattern, \")\")\n };\n};\n\nconst caseFold = codePoint => {\n return iuMappings.get(codePoint) || false;\n};\n\nconst processCharacterClass = (characterClassItem, regenerateOptions) => {\n const set = regenerate();\n\n for (const item of characterClassItem.body) {\n switch (item.type) {\n case 'value':\n set.add(item.codePoint);\n\n if (config.ignoreCase && config.unicode && !config.useUnicodeFlag) {\n const folded = caseFold(item.codePoint);\n\n if (folded) {\n set.add(folded);\n }\n }\n\n break;\n\n case 'characterClassRange':\n const min = item.min.codePoint;\n const max = item.max.codePoint;\n set.addRange(min, max);\n\n if (config.ignoreCase && config.unicode && !config.useUnicodeFlag) {\n set.iuAddRange(min, max);\n }\n\n break;\n\n case 'characterClassEscape':\n set.add(getCharacterClassEscapeSet(item.value, config.unicode, config.ignoreCase));\n break;\n\n case 'unicodePropertyEscape':\n set.add(getUnicodePropertyEscapeSet(item.value, item.negative));\n break;\n // The `default` clause is only here as a safeguard; it should never be\n // reached. Code coverage tools should ignore it.\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown term type: \".concat(item.type));\n }\n }\n\n if (characterClassItem.negative) {\n update(characterClassItem, \"(?!\".concat(set.toString(regenerateOptions), \")[\\\\s\\\\S]\"));\n } else {\n update(characterClassItem, set.toString(regenerateOptions));\n }\n\n return characterClassItem;\n};\n\nconst updateNamedReference = (item, index) => {\n delete item.name;\n item.matchIndex = index;\n};\n\nconst assertNoUnmatchedReferences = groups => {\n const unmatchedReferencesNames = Object.keys(groups.unmatchedReferences);\n\n if (unmatchedReferencesNames.length > 0) {\n throw new Error(\"Unknown group names: \".concat(unmatchedReferencesNames));\n }\n};\n\nconst processTerm = (item, regenerateOptions, groups) => {\n switch (item.type) {\n case 'dot':\n if (config.useDotAllFlag) {\n break;\n } else if (config.unicode) {\n update(item, getUnicodeDotSet(config.dotAll).toString(regenerateOptions));\n } else if (config.dotAll) {\n // TODO: consider changing this at the regenerate level.\n update(item, '[\\\\s\\\\S]');\n }\n\n break;\n\n case 'characterClass':\n item = processCharacterClass(item, regenerateOptions);\n break;\n\n case 'unicodePropertyEscape':\n if (config.unicodePropertyEscape) {\n update(item, getUnicodePropertyEscapeSet(item.value, item.negative).toString(regenerateOptions));\n }\n\n break;\n\n case 'characterClassEscape':\n update(item, getCharacterClassEscapeSet(item.value, config.unicode, config.ignoreCase).toString(regenerateOptions));\n break;\n\n case 'group':\n if (item.behavior == 'normal') {\n groups.lastIndex++;\n }\n\n if (item.name && config.namedGroup) {\n const name = item.name.value;\n\n if (groups.names[name]) {\n throw new Error(\"Multiple groups with the same name (\".concat(name, \") are not allowed.\"));\n }\n\n const index = groups.lastIndex;\n delete item.name;\n groups.names[name] = index;\n\n if (groups.onNamedGroup) {\n groups.onNamedGroup.call(null, name, index);\n }\n\n if (groups.unmatchedReferences[name]) {\n groups.unmatchedReferences[name].forEach(reference => {\n updateNamedReference(reference, index);\n });\n delete groups.unmatchedReferences[name];\n }\n }\n\n /* falls through */\n\n case 'alternative':\n case 'disjunction':\n case 'quantifier':\n item.body = item.body.map(term => {\n return processTerm(term, regenerateOptions, groups);\n });\n break;\n\n case 'value':\n const codePoint = item.codePoint;\n const set = regenerate(codePoint);\n\n if (config.ignoreCase && config.unicode && !config.useUnicodeFlag) {\n const folded = caseFold(codePoint);\n\n if (folded) {\n set.add(folded);\n }\n }\n\n update(item, set.toString(regenerateOptions));\n break;\n\n case 'reference':\n if (item.name) {\n const name = item.name.value;\n const index = groups.names[name];\n\n if (index) {\n updateNamedReference(item, index);\n break;\n }\n\n if (!groups.unmatchedReferences[name]) {\n groups.unmatchedReferences[name] = [];\n } // Keep track of references used before the corresponding group.\n\n\n groups.unmatchedReferences[name].push(item);\n }\n\n break;\n\n case 'anchor':\n case 'empty':\n case 'group':\n // Nothing to do here.\n break;\n // The `default` clause is only here as a safeguard; it should never be\n // reached. Code coverage tools should ignore it.\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown term type: \".concat(item.type));\n }\n\n return item;\n};\n\nconst config = {\n 'ignoreCase': false,\n 'unicode': false,\n 'dotAll': false,\n 'useDotAllFlag': false,\n 'useUnicodeFlag': false,\n 'unicodePropertyEscape': false,\n 'namedGroup': false\n};\n\nconst rewritePattern = (pattern, flags, options) => {\n config.unicode = flags && flags.includes('u');\n const regjsparserFeatures = {\n 'unicodePropertyEscape': config.unicode,\n 'namedGroups': true,\n 'lookbehind': options && options.lookbehind\n };\n config.ignoreCase = flags && flags.includes('i');\n const supportDotAllFlag = options && options.dotAllFlag;\n config.dotAll = supportDotAllFlag && flags && flags.includes('s');\n config.namedGroup = options && options.namedGroup;\n config.useDotAllFlag = options && options.useDotAllFlag;\n config.useUnicodeFlag = options && options.useUnicodeFlag;\n config.unicodePropertyEscape = options && options.unicodePropertyEscape;\n\n if (supportDotAllFlag && config.useDotAllFlag) {\n throw new Error('`useDotAllFlag` and `dotAllFlag` cannot both be true!');\n }\n\n const regenerateOptions = {\n 'hasUnicodeFlag': config.useUnicodeFlag,\n 'bmpOnly': !config.unicode\n };\n const groups = {\n 'onNamedGroup': options && options.onNamedGroup,\n 'lastIndex': 0,\n 'names': Object.create(null),\n // { [name]: index }\n 'unmatchedReferences': Object.create(null) // { [name]: Array }\n\n };\n const tree = parse(pattern, flags, regjsparserFeatures); // Note: `processTerm` mutates `tree` and `groups`.\n\n processTerm(tree, regenerateOptions, groups);\n assertNoUnmatchedReferences(groups);\n return generate(tree);\n};\n\nmodule.exports = rewritePattern;","/*!\n * regjsgen 0.5.2\n * Copyright 2014-2020 Benjamin Tan \n * Available under the MIT license \n */\n;\n(function () {\n 'use strict'; // Used to determine if values are of the language type `Object`.\n\n var objectTypes = {\n 'function': true,\n 'object': true\n }; // Used as a reference to the global object.\n\n var root = objectTypes[typeof window] && window || this; // Detect free variable `exports`.\n\n var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; // Detect free variable `module`.\n\n var hasFreeModule = objectTypes[typeof module] && module && !module.nodeType; // Detect free variable `global` from Node.js or Browserified code and use it as `root`.\n\n var freeGlobal = freeExports && hasFreeModule && typeof global == 'object' && global;\n\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n } // Used to check objects for own properties.\n\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /*--------------------------------------------------------------------------*/\n // Generates a string based on the given code point.\n // Based on https://mths.be/fromcodepoint by @mathias.\n\n function fromCodePoint() {\n var codePoint = Number(arguments[0]);\n\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xFFFF) {\n // BMP code point\n return String.fromCharCode(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n var highSurrogate = (codePoint >> 10) + 0xD800;\n var lowSurrogate = codePoint % 0x400 + 0xDC00;\n return String.fromCharCode(highSurrogate, lowSurrogate);\n }\n }\n /*--------------------------------------------------------------------------*/\n // Ensures that nodes have the correct types.\n\n\n var assertTypeRegexMap = {};\n\n function assertType(type, expected) {\n if (expected.indexOf('|') == -1) {\n if (type == expected) {\n return;\n }\n\n throw Error('Invalid node type: ' + type + '; expected type: ' + expected);\n }\n\n expected = hasOwnProperty.call(assertTypeRegexMap, expected) ? assertTypeRegexMap[expected] : assertTypeRegexMap[expected] = RegExp('^(?:' + expected + ')$');\n\n if (expected.test(type)) {\n return;\n }\n\n throw Error('Invalid node type: ' + type + '; expected types: ' + expected);\n }\n /*--------------------------------------------------------------------------*/\n // Generates a regular expression string based on an AST.\n\n\n function generate(node) {\n var type = node.type;\n\n if (hasOwnProperty.call(generators, type)) {\n return generators[type](node);\n }\n\n throw Error('Invalid node type: ' + type);\n } // Constructs a string by concatentating the output of each term.\n\n\n function generateSequence(generator, terms) {\n var i = -1,\n length = terms.length,\n result = '',\n term;\n\n while (++i < length) {\n term = terms[i]; // Ensure that `\\0` null escapes followed by number symbols are not\n // treated as backreferences.\n\n if (i + 1 < length && terms[i].type == 'value' && terms[i].kind == 'null' && terms[i + 1].type == 'value' && terms[i + 1].kind == 'symbol' && terms[i + 1].codePoint >= 48 && terms[i + 1].codePoint <= 57) {\n result += '\\\\000';\n continue;\n }\n\n result += generator(term);\n }\n\n return result;\n }\n /*--------------------------------------------------------------------------*/\n\n\n function generateAlternative(node) {\n assertType(node.type, 'alternative');\n return generateSequence(generateTerm, node.body);\n }\n\n function generateAnchor(node) {\n assertType(node.type, 'anchor');\n\n switch (node.kind) {\n case 'start':\n return '^';\n\n case 'end':\n return '$';\n\n case 'boundary':\n return '\\\\b';\n\n case 'not-boundary':\n return '\\\\B';\n\n default:\n throw Error('Invalid assertion');\n }\n }\n\n function generateAtom(node) {\n assertType(node.type, 'anchor|characterClass|characterClassEscape|dot|group|reference|value');\n return generate(node);\n }\n\n function generateCharacterClass(node) {\n assertType(node.type, 'characterClass');\n return '[' + (node.negative ? '^' : '') + generateSequence(generateClassAtom, node.body) + ']';\n }\n\n function generateCharacterClassEscape(node) {\n assertType(node.type, 'characterClassEscape');\n return '\\\\' + node.value;\n }\n\n function generateCharacterClassRange(node) {\n assertType(node.type, 'characterClassRange');\n var min = node.min,\n max = node.max;\n\n if (min.type == 'characterClassRange' || max.type == 'characterClassRange') {\n throw Error('Invalid character class range');\n }\n\n return generateClassAtom(min) + '-' + generateClassAtom(max);\n }\n\n function generateClassAtom(node) {\n assertType(node.type, 'anchor|characterClassEscape|characterClassRange|dot|value');\n return generate(node);\n }\n\n function generateDisjunction(node) {\n assertType(node.type, 'disjunction');\n var body = node.body,\n i = -1,\n length = body.length,\n result = '';\n\n while (++i < length) {\n if (i != 0) {\n result += '|';\n }\n\n result += generate(body[i]);\n }\n\n return result;\n }\n\n function generateDot(node) {\n assertType(node.type, 'dot');\n return '.';\n }\n\n function generateGroup(node) {\n assertType(node.type, 'group');\n var result = '';\n\n switch (node.behavior) {\n case 'normal':\n if (node.name) {\n result += '?<' + generateIdentifier(node.name) + '>';\n }\n\n break;\n\n case 'ignore':\n result += '?:';\n break;\n\n case 'lookahead':\n result += '?=';\n break;\n\n case 'negativeLookahead':\n result += '?!';\n break;\n\n case 'lookbehind':\n result += '?<=';\n break;\n\n case 'negativeLookbehind':\n result += '?';\n }\n\n throw new Error('Unknown reference type');\n }\n\n function generateTerm(node) {\n assertType(node.type, 'anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|unicodePropertyEscape|value|dot');\n return generate(node);\n }\n\n function generateUnicodePropertyEscape(node) {\n assertType(node.type, 'unicodePropertyEscape');\n return '\\\\' + (node.negative ? 'P' : 'p') + '{' + node.value + '}';\n }\n\n function generateValue(node) {\n assertType(node.type, 'value');\n var kind = node.kind,\n codePoint = node.codePoint;\n\n if (typeof codePoint != 'number') {\n throw new Error('Invalid code point: ' + codePoint);\n }\n\n switch (kind) {\n case 'controlLetter':\n return '\\\\c' + fromCodePoint(codePoint + 64);\n\n case 'hexadecimalEscape':\n return '\\\\x' + ('00' + codePoint.toString(16).toUpperCase()).slice(-2);\n\n case 'identifier':\n return '\\\\' + fromCodePoint(codePoint);\n\n case 'null':\n return '\\\\' + codePoint;\n\n case 'octal':\n return '\\\\' + ('000' + codePoint.toString(8)).slice(-3);\n\n case 'singleEscape':\n switch (codePoint) {\n case 0x0008:\n return '\\\\b';\n\n case 0x0009:\n return '\\\\t';\n\n case 0x000A:\n return '\\\\n';\n\n case 0x000B:\n return '\\\\v';\n\n case 0x000C:\n return '\\\\f';\n\n case 0x000D:\n return '\\\\r';\n\n case 0x002D:\n return '\\\\-';\n\n default:\n throw Error('Invalid code point: ' + codePoint);\n }\n\n case 'symbol':\n return fromCodePoint(codePoint);\n\n case 'unicodeEscape':\n return '\\\\u' + ('0000' + codePoint.toString(16).toUpperCase()).slice(-4);\n\n case 'unicodeCodePointEscape':\n return '\\\\u{' + codePoint.toString(16).toUpperCase() + '}';\n\n default:\n throw Error('Unsupported node kind: ' + kind);\n }\n }\n /*--------------------------------------------------------------------------*/\n // Used to generate strings for each node type.\n\n\n var generators = {\n 'alternative': generateAlternative,\n 'anchor': generateAnchor,\n 'characterClass': generateCharacterClass,\n 'characterClassEscape': generateCharacterClassEscape,\n 'characterClassRange': generateCharacterClassRange,\n 'disjunction': generateDisjunction,\n 'dot': generateDot,\n 'group': generateGroup,\n 'quantifier': generateQuantifier,\n 'reference': generateReference,\n 'unicodePropertyEscape': generateUnicodePropertyEscape,\n 'value': generateValue\n };\n /*--------------------------------------------------------------------------*/\n // Export regjsgen.\n\n var regjsgen = {\n 'generate': generate\n }; // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Define as an anonymous module so it can be aliased through path mapping.\n define(function () {\n return regjsgen;\n });\n root.regjsgen = regjsgen;\n } // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else if (freeExports && hasFreeModule) {\n // Export for CommonJS support.\n freeExports.generate = generate;\n } else {\n // Export to the global object.\n root.regjsgen = regjsgen;\n }\n}).call(this);","// regjsparser\n//\n// ==================================================================\n//\n// See ECMA-262 Standard: 15.10.1\n//\n// NOTE: The ECMA-262 standard uses the term \"Assertion\" for /^/. Here the\n// term \"Anchor\" is used.\n//\n// Pattern ::\n// Disjunction\n//\n// Disjunction ::\n// Alternative\n// Alternative | Disjunction\n//\n// Alternative ::\n// [empty]\n// Alternative Term\n//\n// Term ::\n// Anchor\n// Atom\n// Atom Quantifier\n//\n// Anchor ::\n// ^\n// $\n// \\ b\n// \\ B\n// ( ? = Disjunction )\n// ( ? ! Disjunction )\n// ( ? < = Disjunction )\n// ( ? < ! Disjunction )\n//\n// Quantifier ::\n// QuantifierPrefix\n// QuantifierPrefix ?\n//\n// QuantifierPrefix ::\n// *\n// +\n// ?\n// { DecimalDigits }\n// { DecimalDigits , }\n// { DecimalDigits , DecimalDigits }\n//\n// Atom ::\n// PatternCharacter\n// .\n// \\ AtomEscape\n// CharacterClass\n// ( GroupSpecifier Disjunction )\n// ( ? : Disjunction )\n//\n// PatternCharacter ::\n// SourceCharacter but not any of: ^ $ \\ . * + ? ( ) [ ] { } |\n//\n// AtomEscape ::\n// DecimalEscape\n// CharacterClassEscape\n// CharacterEscape\n// k GroupName\n//\n// CharacterEscape[U] ::\n// ControlEscape\n// c ControlLetter\n// HexEscapeSequence\n// RegExpUnicodeEscapeSequence[?U] (ES6)\n// IdentityEscape[?U]\n//\n// ControlEscape ::\n// one of f n r t v\n// ControlLetter ::\n// one of\n// a b c d e f g h i j k l m n o p q r s t u v w x y z\n// A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n//\n// IdentityEscape ::\n// SourceCharacter but not c\n//\n// DecimalEscape ::\n// DecimalIntegerLiteral [lookahead ∉ DecimalDigit]\n//\n// CharacterClassEscape ::\n// one of d D s S w W\n//\n// CharacterClass ::\n// [ [lookahead ∉ {^}] ClassRanges ]\n// [ ^ ClassRanges ]\n//\n// ClassRanges ::\n// [empty]\n// [~V] NonemptyClassRanges\n// [+V] ClassContents\n//\n// NonemptyClassRanges ::\n// ClassAtom\n// ClassAtom NonemptyClassRangesNoDash\n// ClassAtom - ClassAtom ClassRanges\n//\n// NonemptyClassRangesNoDash ::\n// ClassAtom\n// ClassAtomNoDash NonemptyClassRangesNoDash\n// ClassAtomNoDash - ClassAtom ClassRanges\n//\n// ClassAtom ::\n// -\n// ClassAtomNoDash\n//\n// ClassAtomNoDash ::\n// SourceCharacter but not one of \\ or ] or -\n// \\ ClassEscape\n//\n// ClassEscape ::\n// DecimalEscape\n// b\n// CharacterEscape\n// CharacterClassEscape\n//\n// GroupSpecifier ::\n// [empty]\n// ? GroupName\n//\n// GroupName ::\n// < RegExpIdentifierName >\n//\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierContinue\n//\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// $\n// _\n// \\ RegExpUnicodeEscapeSequence\n//\n// RegExpIdentifierContinue ::\n// UnicodeIDContinue\n// $\n// _\n// \\ RegExpUnicodeEscapeSequence\n// \n// \n//\n// --------------------------------------------------------------\n// NOTE: The following productions refer to the \"set notation and\n// properties of strings\" proposal.\n// https://github.com/tc39/proposal-regexp-set-notation\n// --------------------------------------------------------------\n//\n// ClassContents ::\n// ClassUnion\n// ClassIntersection\n// ClassSubtraction\n//\n// ClassUnion ::\n// ClassRange ClassUnion?\n// ClassOperand ClassUnion?\n//\n// ClassIntersection ::\n// ClassOperand && [lookahead ≠ &] ClassOperand\n// ClassIntersection && [lookahead ≠ &] ClassOperand\n//\n// ClassSubtraction ::\n// ClassOperand -- ClassOperand\n// ClassSubtraction -- ClassOperand\n//\n// ClassOperand ::\n// ClassCharacter\n// ClassStrings\n// NestedClass\n//\n// NestedClass ::\n// [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n// [ ^ ClassRanges[+U,+V] ]\n// \\ CharacterClassEscape[+U, +V]\n//\n// ClassRange ::\n// ClassCharacter - ClassCharacter\n//\n// ClassCharacter ::\n// [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n// \\ CharacterEscape[+U]\n// \\ ClassHalfOfDouble\n// \\ b\n//\n// ClassSyntaxCharacter ::\n// one of ( ) [ ] { } / - \\ |\n//\n// ClassStrings ::\n// ( ClassString MoreClassStrings? )\n//\n// MoreClassStrings ::\n// | ClassString MoreClassStrings?\n//\n// ClassString ::\n// [empty]\n// NonEmptyClassString\n//\n// NonEmptyClassString ::\n// ClassCharacter NonEmptyClassString?\n//\n// ClassReservedDouble ::\n// one of && !! ## $$ %% ** ++ ,, .. :: ;; << == >> ?? @@ ^^ __ `` ~~\n//\n// ClassHalfOfDouble ::\n// one of & - ! # % , : ; < = > @ _ ` ~\n//\n(function () {\n var fromCodePoint = String.fromCodePoint || function () {\n // Implementation taken from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n return function fromCodePoint() {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n\n if (!length) {\n return '';\n }\n\n var result = '';\n\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xFFFF) {\n // BMP code point\n codeUnits.push(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xD800;\n lowSurrogate = codePoint % 0x400 + 0xDC00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n\n if (index + 1 == length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n\n return result;\n };\n }();\n\n function parse(str, flags, features) {\n if (!features) {\n features = {};\n }\n\n function addRaw(node) {\n node.raw = str.substring(node.range[0], node.range[1]);\n return node;\n }\n\n function updateRawStart(node, start) {\n node.range[0] = start;\n return addRaw(node);\n }\n\n function createAnchor(kind, rawLength) {\n return addRaw({\n type: 'anchor',\n kind: kind,\n range: [pos - rawLength, pos]\n });\n }\n\n function createValue(kind, codePoint, from, to) {\n return addRaw({\n type: 'value',\n kind: kind,\n codePoint: codePoint,\n range: [from, to]\n });\n }\n\n function createEscaped(kind, codePoint, value, fromOffset) {\n fromOffset = fromOffset || 0;\n return createValue(kind, codePoint, pos - (value.length + fromOffset), pos);\n }\n\n function createCharacter(matches) {\n var _char = matches[0];\n\n var first = _char.charCodeAt(0);\n\n if (hasUnicodeFlag) {\n var second;\n\n if (_char.length === 1 && first >= 0xD800 && first <= 0xDBFF) {\n second = lookahead().charCodeAt(0);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n pos++;\n return createValue('symbol', (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000, pos - 2, pos);\n }\n }\n }\n\n return createValue('symbol', first, pos - 1, pos);\n }\n\n function createDisjunction(alternatives, from, to) {\n return addRaw({\n type: 'disjunction',\n body: alternatives,\n range: [from, to]\n });\n }\n\n function createDot() {\n return addRaw({\n type: 'dot',\n range: [pos - 1, pos]\n });\n }\n\n function createCharacterClassEscape(value) {\n return addRaw({\n type: 'characterClassEscape',\n value: value,\n range: [pos - 2, pos]\n });\n }\n\n function createReference(matchIndex) {\n return addRaw({\n type: 'reference',\n matchIndex: parseInt(matchIndex, 10),\n range: [pos - 1 - matchIndex.length, pos]\n });\n }\n\n function createNamedReference(name) {\n return addRaw({\n type: 'reference',\n name: name,\n range: [name.range[0] - 3, pos]\n });\n }\n\n function createGroup(behavior, disjunction, from, to) {\n return addRaw({\n type: 'group',\n behavior: behavior,\n body: disjunction,\n range: [from, to]\n });\n }\n\n function createQuantifier(min, max, from, to) {\n if (to == null) {\n from = pos - 1;\n to = pos;\n }\n\n return addRaw({\n type: 'quantifier',\n min: min,\n max: max,\n greedy: true,\n body: null,\n // set later on\n range: [from, to]\n });\n }\n\n function createAlternative(terms, from, to) {\n return addRaw({\n type: 'alternative',\n body: terms,\n range: [from, to]\n });\n }\n\n function createCharacterClass(contents, negative, from, to) {\n return addRaw({\n type: 'characterClass',\n kind: contents.kind,\n body: contents.body,\n negative: negative,\n range: [from, to]\n });\n }\n\n function createClassRange(min, max, from, to) {\n // See 15.10.2.15:\n if (min.codePoint > max.codePoint) {\n bail('invalid range in character class', min.raw + '-' + max.raw, from, to);\n }\n\n return addRaw({\n type: 'characterClassRange',\n min: min,\n max: max,\n range: [from, to]\n });\n }\n\n function createClassStrings(strings, from, to) {\n return addRaw({\n type: 'classStrings',\n strings: strings,\n range: [from, to]\n });\n }\n\n function createClassString(characters, from, to) {\n return addRaw({\n type: 'classString',\n characters: characters,\n range: [from, to]\n });\n }\n\n function flattenBody(body) {\n if (body.type === 'alternative') {\n return body.body;\n } else {\n return [body];\n }\n }\n\n function incr(amount) {\n amount = amount || 1;\n var res = str.substring(pos, pos + amount);\n pos += amount || 1;\n return res;\n }\n\n function skip(value) {\n if (!match(value)) {\n bail('character', value);\n }\n }\n\n function match(value) {\n if (str.indexOf(value, pos) === pos) {\n return incr(value.length);\n }\n }\n\n function lookahead() {\n return str[pos];\n }\n\n function current(value) {\n return str.indexOf(value, pos) === pos;\n }\n\n function next(value) {\n return str[pos + 1] === value;\n }\n\n function matchReg(regExp) {\n var subStr = str.substring(pos);\n var res = subStr.match(regExp);\n\n if (res) {\n res.range = [];\n res.range[0] = pos;\n incr(res[0].length);\n res.range[1] = pos;\n }\n\n return res;\n }\n\n function parseDisjunction() {\n // Disjunction ::\n // Alternative\n // Alternative | Disjunction\n var res = [],\n from = pos;\n res.push(parseAlternative());\n\n while (match('|')) {\n res.push(parseAlternative());\n }\n\n if (res.length === 1) {\n return res[0];\n }\n\n return createDisjunction(res, from, pos);\n }\n\n function parseAlternative() {\n var res = [],\n from = pos;\n var term; // Alternative ::\n // [empty]\n // Alternative Term\n\n while (term = parseTerm()) {\n res.push(term);\n }\n\n if (res.length === 1) {\n return res[0];\n }\n\n return createAlternative(res, from, pos);\n }\n\n function parseTerm() {\n // Term ::\n // Anchor\n // Atom\n // Atom Quantifier\n if (pos >= str.length || current('|') || current(')')) {\n return null;\n /* Means: The term is empty */\n }\n\n var anchor = parseAnchor();\n\n if (anchor) {\n return anchor;\n }\n\n var atom = parseAtomAndExtendedAtom();\n\n if (!atom) {\n // Check if a quantifier is following. A quantifier without an atom\n // is an error.\n pos_backup = pos;\n var quantifier = parseQuantifier() || false;\n\n if (quantifier) {\n pos = pos_backup;\n bail('Expected atom');\n } // If no unicode flag, then try to parse ExtendedAtom -> ExtendedPatternCharacter.\n // ExtendedPatternCharacter\n\n\n if (!hasUnicodeFlag && (res = matchReg(/^{/))) {\n atom = createCharacter(res);\n } else {\n bail('Expected atom');\n }\n }\n\n var quantifier = parseQuantifier() || false;\n\n if (quantifier) {\n quantifier.body = flattenBody(atom); // The quantifier contains the atom. Therefore, the beginning of the\n // quantifier range is given by the beginning of the atom.\n\n updateRawStart(quantifier, atom.range[0]);\n return quantifier;\n }\n\n return atom;\n }\n\n function parseGroup(matchA, typeA, matchB, typeB) {\n var type = null,\n from = pos;\n\n if (match(matchA)) {\n type = typeA;\n } else if (match(matchB)) {\n type = typeB;\n } else {\n return false;\n }\n\n return finishGroup(type, from);\n }\n\n function finishGroup(type, from) {\n var body = parseDisjunction();\n\n if (!body) {\n bail('Expected disjunction');\n }\n\n skip(')');\n var group = createGroup(type, flattenBody(body), from, pos);\n\n if (type == 'normal') {\n // Keep track of the number of closed groups. This is required for\n // parseDecimalEscape(). In case the string is parsed a second time the\n // value already holds the total count and no incrementation is required.\n if (firstIteration) {\n closedCaptureCounter++;\n }\n }\n\n return group;\n }\n\n function parseAnchor() {\n // Anchor ::\n // ^\n // $\n // \\ b\n // \\ B\n // ( ? = Disjunction )\n // ( ? ! Disjunction )\n var res,\n from = pos;\n\n if (match('^')) {\n return createAnchor('start', 1\n /* rawLength */\n );\n } else if (match('$')) {\n return createAnchor('end', 1\n /* rawLength */\n );\n } else if (match('\\\\b')) {\n return createAnchor('boundary', 2\n /* rawLength */\n );\n } else if (match('\\\\B')) {\n return createAnchor('not-boundary', 2\n /* rawLength */\n );\n } else {\n return parseGroup('(?=', 'lookahead', '(?!', 'negativeLookahead');\n }\n }\n\n function parseQuantifier() {\n // Quantifier ::\n // QuantifierPrefix\n // QuantifierPrefix ?\n //\n // QuantifierPrefix ::\n // *\n // +\n // ?\n // { DecimalDigits }\n // { DecimalDigits , }\n // { DecimalDigits , DecimalDigits }\n var res,\n from = pos;\n var quantifier;\n var min, max;\n\n if (match('*')) {\n quantifier = createQuantifier(0);\n } else if (match('+')) {\n quantifier = createQuantifier(1);\n } else if (match('?')) {\n quantifier = createQuantifier(0, 1);\n } else if (res = matchReg(/^\\{([0-9]+)\\}/)) {\n min = parseInt(res[1], 10);\n quantifier = createQuantifier(min, min, res.range[0], res.range[1]);\n } else if (res = matchReg(/^\\{([0-9]+),\\}/)) {\n min = parseInt(res[1], 10);\n quantifier = createQuantifier(min, undefined, res.range[0], res.range[1]);\n } else if (res = matchReg(/^\\{([0-9]+),([0-9]+)\\}/)) {\n min = parseInt(res[1], 10);\n max = parseInt(res[2], 10);\n\n if (min > max) {\n bail('numbers out of order in {} quantifier', '', from, pos);\n }\n\n quantifier = createQuantifier(min, max, res.range[0], res.range[1]);\n }\n\n if (quantifier) {\n if (match('?')) {\n quantifier.greedy = false;\n quantifier.range[1] += 1;\n }\n }\n\n return quantifier;\n }\n\n function parseAtomAndExtendedAtom() {\n // Parsing Atom and ExtendedAtom together due to redundancy.\n // ExtendedAtom is defined in Apendix B of the ECMA-262 standard.\n //\n // SEE: https://www.ecma-international.org/ecma-262/10.0/index.html#prod-annexB-ExtendedPatternCharacter\n //\n // Atom ::\n // PatternCharacter\n // .\n // \\ AtomEscape\n // CharacterClass\n // ( GroupSpecifier Disjunction )\n // ( ? : Disjunction )\n // ExtendedAtom ::\n // ExtendedPatternCharacter\n // ExtendedPatternCharacter ::\n // SourceCharacter but not one of ^$\\.*+?()[|\n var res; // jviereck: allow ']', '}' here as well to be compatible with browser's\n // implementations: ']'.match(/]/);\n\n if (res = matchReg(/^[^^$\\\\.*+?()[\\]{}|]/)) {\n // PatternCharacter\n return createCharacter(res);\n } else if (!hasUnicodeFlag && (res = matchReg(/^(?:]|})/))) {\n // ExtendedPatternCharacter, first part. See parseTerm.\n return createCharacter(res);\n } else if (match('.')) {\n // .\n return createDot();\n } else if (match('\\\\')) {\n // \\ AtomEscape\n res = parseAtomEscape();\n\n if (!res) {\n if (!hasUnicodeFlag && lookahead() == 'c') {\n // B.1.4 ExtendedAtom\n // \\[lookahead = c]\n return createValue('symbol', 92, pos - 1, pos);\n }\n\n bail('atomEscape');\n }\n\n return res;\n } else if (res = parseCharacterClass()) {\n return res;\n } else if (features.lookbehind && (res = parseGroup('(?<=', 'lookbehind', '(?\");\n var group = finishGroup(\"normal\", name.range[0] - 3);\n group.name = name;\n return group;\n } else {\n // ( Disjunction )\n // ( ? : Disjunction )\n return parseGroup('(?:', 'ignore', '(', 'normal');\n }\n }\n\n function parseUnicodeSurrogatePairEscape(firstEscape) {\n if (hasUnicodeFlag) {\n var first, second;\n\n if (firstEscape.kind == 'unicodeEscape' && (first = firstEscape.codePoint) >= 0xD800 && first <= 0xDBFF && current('\\\\') && next('u')) {\n var prevPos = pos;\n pos++;\n var secondEscape = parseClassEscape();\n\n if (secondEscape.kind == 'unicodeEscape' && (second = secondEscape.codePoint) >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n firstEscape.range[1] = secondEscape.range[1];\n firstEscape.codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n firstEscape.type = 'value';\n firstEscape.kind = 'unicodeCodePointEscape';\n addRaw(firstEscape);\n } else {\n pos = prevPos;\n }\n }\n }\n\n return firstEscape;\n }\n\n function parseClassEscape() {\n return parseAtomEscape(true);\n }\n\n function parseAtomEscape(insideCharacterClass) {\n // AtomEscape ::\n // DecimalEscape\n // CharacterEscape\n // CharacterClassEscape\n // k GroupName\n var res,\n from = pos;\n res = parseDecimalEscape() || parseNamedReference();\n\n if (res) {\n return res;\n } // For ClassEscape\n\n\n if (insideCharacterClass) {\n // b\n if (match('b')) {\n // 15.10.2.19\n // The production ClassEscape :: b evaluates by returning the\n // CharSet containing the one character (Unicode value 0008).\n return createEscaped('singleEscape', 0x0008, '\\\\b');\n } else if (match('B')) {\n bail('\\\\B not possible inside of CharacterClass', '', from);\n } else if (!hasUnicodeFlag && (res = matchReg(/^c([0-9])/))) {\n // B.1.4\n // c ClassControlLetter, ClassControlLetter = DecimalDigit\n return createEscaped('controlLetter', res[1] + 16, res[1], 2);\n } else if (!hasUnicodeFlag && (res = matchReg(/^c_/))) {\n // B.1.4\n // c ClassControlLetter, ClassControlLetter = _\n return createEscaped('controlLetter', 31, '_', 2);\n } // [+U] -\n\n\n if (hasUnicodeFlag && match('-')) {\n return createEscaped('singleEscape', 0x002d, '\\\\-');\n }\n }\n\n res = parseCharacterClassEscape() || parseCharacterEscape();\n return res;\n }\n\n function parseDecimalEscape() {\n // DecimalEscape ::\n // DecimalIntegerLiteral [lookahead ∉ DecimalDigit]\n var res, match;\n\n if (res = matchReg(/^(?!0)\\d+/)) {\n match = res[0];\n var refIdx = parseInt(res[0], 10);\n\n if (refIdx <= closedCaptureCounter) {\n // If the number is smaller than the normal-groups found so\n // far, then it is a reference...\n return createReference(res[0]);\n } else {\n // ... otherwise it needs to be interpreted as a octal (if the\n // number is in an octal format). If it is NOT octal format,\n // then the slash is ignored and the number is matched later\n // as normal characters.\n // Recall the negative decision to decide if the input must be parsed\n // a second time with the total normal-groups.\n backrefDenied.push(refIdx); // Reset the position again, as maybe only parts of the previous\n // matched numbers are actual octal numbers. E.g. in '019' only\n // the '01' should be matched.\n\n incr(-res[0].length);\n\n if (res = matchReg(/^[0-7]{1,3}/)) {\n return createEscaped('octal', parseInt(res[0], 8), res[0], 1);\n } else {\n // If we end up here, we have a case like /\\91/. Then the\n // first slash is to be ignored and the 9 & 1 to be treated\n // like ordinary characters. Create a character for the\n // first number only here - other number-characters\n // (if available) will be matched later.\n res = createCharacter(matchReg(/^[89]/));\n return updateRawStart(res, res.range[0] - 1);\n }\n }\n } // Only allow octal numbers in the following. All matched numbers start\n // with a zero (if the do not, the previous if-branch is executed).\n // If the number is not octal format and starts with zero (e.g. `091`)\n // then only the zeros `0` is treated here and the `91` are ordinary\n // characters.\n // Example:\n // /\\091/.exec('\\091')[0].length === 3\n else if (res = matchReg(/^[0-7]{1,3}/)) {\n match = res[0];\n\n if (/^0{1,3}$/.test(match)) {\n // If they are all zeros, then only take the first one.\n return createEscaped('null', 0x0000, '0', match.length);\n } else {\n return createEscaped('octal', parseInt(match, 8), match, 1);\n }\n }\n\n return false;\n }\n\n function parseCharacterClassEscape() {\n // CharacterClassEscape :: one of d D s S w W\n var res;\n\n if (res = matchReg(/^[dDsSwW]/)) {\n return createCharacterClassEscape(res[0]);\n } else if (features.unicodePropertyEscape && (hasUnicodeFlag || hasUnicodeSetFlag) && (res = matchReg(/^([pP])\\{([^\\}]+)\\}/))) {\n // https://github.com/jviereck/regjsparser/issues/77\n return addRaw({\n type: 'unicodePropertyEscape',\n negative: res[1] === 'P',\n value: res[2],\n range: [res.range[0] - 1, res.range[1]],\n raw: res[0]\n });\n }\n\n return false;\n }\n\n function parseNamedReference() {\n if (features.namedGroups && matchReg(/^k<(?=.*?>)/)) {\n var name = parseIdentifier();\n skip('>');\n return createNamedReference(name);\n }\n }\n\n function parseRegExpUnicodeEscapeSequence() {\n var res;\n\n if (res = matchReg(/^u([0-9a-fA-F]{4})/)) {\n // UnicodeEscapeSequence\n return parseUnicodeSurrogatePairEscape(createEscaped('unicodeEscape', parseInt(res[1], 16), res[1], 2));\n } else if (hasUnicodeFlag && (res = matchReg(/^u\\{([0-9a-fA-F]+)\\}/))) {\n // RegExpUnicodeEscapeSequence (ES6 Unicode code point escape)\n return createEscaped('unicodeCodePointEscape', parseInt(res[1], 16), res[1], 4);\n }\n }\n\n function parseCharacterEscape() {\n // CharacterEscape ::\n // ControlEscape\n // c ControlLetter\n // HexEscapeSequence\n // UnicodeEscapeSequence\n // IdentityEscape\n var res;\n var from = pos;\n\n if (res = matchReg(/^[fnrtv]/)) {\n // ControlEscape\n var codePoint = 0;\n\n switch (res[0]) {\n case 't':\n codePoint = 0x009;\n break;\n\n case 'n':\n codePoint = 0x00A;\n break;\n\n case 'v':\n codePoint = 0x00B;\n break;\n\n case 'f':\n codePoint = 0x00C;\n break;\n\n case 'r':\n codePoint = 0x00D;\n break;\n }\n\n return createEscaped('singleEscape', codePoint, '\\\\' + res[0]);\n } else if (res = matchReg(/^c([a-zA-Z])/)) {\n // c ControlLetter\n return createEscaped('controlLetter', res[1].charCodeAt(0) % 32, res[1], 2);\n } else if (res = matchReg(/^x([0-9a-fA-F]{2})/)) {\n // HexEscapeSequence\n return createEscaped('hexadecimalEscape', parseInt(res[1], 16), res[1], 2);\n } else if (res = parseRegExpUnicodeEscapeSequence()) {\n if (!res || res.codePoint > 0x10FFFF) {\n bail('Invalid escape sequence', null, from, pos);\n }\n\n return res;\n } else {\n // IdentityEscape\n return parseIdentityEscape();\n }\n }\n\n function parseIdentifierAtom(check) {\n var ch = lookahead();\n var from = pos;\n\n if (ch === '\\\\') {\n incr();\n var esc = parseRegExpUnicodeEscapeSequence();\n\n if (!esc || !check(esc.codePoint)) {\n bail('Invalid escape sequence', null, from, pos);\n }\n\n return fromCodePoint(esc.codePoint);\n }\n\n var code = ch.charCodeAt(0);\n\n if (code >= 0xD800 && code <= 0xDBFF) {\n ch += str[pos + 1];\n var second = ch.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n if (!check(code)) return;\n incr();\n if (code > 0xFFFF) incr();\n return ch;\n }\n\n function parseIdentifier() {\n // RegExpIdentifierName ::\n // RegExpIdentifierStart\n // RegExpIdentifierName RegExpIdentifierContinue\n //\n // RegExpIdentifierStart ::\n // UnicodeIDStart\n // $\n // _\n // \\ RegExpUnicodeEscapeSequence\n //\n // RegExpIdentifierContinue ::\n // UnicodeIDContinue\n // $\n // _\n // \\ RegExpUnicodeEscapeSequence\n // \n // \n var start = pos;\n var res = parseIdentifierAtom(isIdentifierStart);\n\n if (!res) {\n bail('Invalid identifier');\n }\n\n var ch;\n\n while (ch = parseIdentifierAtom(isIdentifierPart)) {\n res += ch;\n }\n\n return addRaw({\n type: 'identifier',\n value: res,\n range: [start, pos]\n });\n }\n\n function isIdentifierStart(ch) {\n // Generated by `tools/generate-identifier-regex.js`.\n var NonAsciiIdentifierStart = /[\\$A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\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\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\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-\\u1CF1\\u1CF5\\u1CF6\\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-\\uA7B9\\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-\\uAB65\\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]|\\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\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF1A]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\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\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\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-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFF1]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\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]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\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]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\n return ch === 36 || ch === 95 || // $ (dollar) and _ (underscore)\n ch >= 65 && ch <= 90 || // A..Z\n ch >= 97 && ch <= 122 || // a..z\n ch >= 0x80 && NonAsciiIdentifierStart.test(fromCodePoint(ch));\n } // Taken from the Esprima parser.\n\n\n function isIdentifierPart(ch) {\n // Generated by `tools/generate-identifier-regex.js`.\n var NonAsciiIdentifierPartOnly = /[0-9_\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200C\\u200D\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD801[\\uDCA0-\\uDCA9]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDD30-\\uDD39\\uDF46-\\uDF50]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCF0-\\uDCF9\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD36-\\uDD3F\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDD0-\\uDDD9\\uDE2C-\\uDE37\\uDE3E\\uDEDF-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC50-\\uDC59\\uDC5E\\uDCB0-\\uDCC3\\uDCD0-\\uDCD9\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDE50-\\uDE59\\uDEAB-\\uDEB7\\uDEC0-\\uDEC9\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDC2C-\\uDC3A\\uDCE0-\\uDCE9\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC50-\\uDC59\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD50-\\uDD59\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDDA0-\\uDDA9\\uDEF3-\\uDEF6]|\\uD81A[\\uDE60-\\uDE69\\uDEF0-\\uDEF4\\uDF30-\\uDF36\\uDF50-\\uDF59]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A\\uDD50-\\uDD59]|\\uDB40[\\uDD00-\\uDDEF]/;\n return isIdentifierStart(ch) || ch >= 48 && ch <= 57 || // 0..9\n ch >= 0x80 && NonAsciiIdentifierPartOnly.test(fromCodePoint(ch));\n }\n\n function parseIdentityEscape() {\n // IdentityEscape ::\n // [+U] SyntaxCharacter\n // [+U] /\n // [~U] SourceCharacterIdentityEscape[?N]\n // SourceCharacterIdentityEscape[?N] ::\n // [~N] SourceCharacter but not c\n // [+N] SourceCharacter but not one of c or k\n var tmp;\n var l = lookahead();\n\n if (hasUnicodeFlag && /[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/.test(l) || !hasUnicodeFlag && l !== \"c\") {\n if (l === \"k\" && features.lookbehind) {\n return null;\n }\n\n tmp = incr();\n return createEscaped('identifier', tmp.charCodeAt(0), tmp, 1);\n }\n\n return null;\n }\n\n function parseCharacterClass() {\n // CharacterClass ::\n // [ [lookahead ∉ {^}] ClassRanges ]\n // [ ^ ClassRanges ]\n var res,\n from = pos;\n\n if (res = matchReg(/^\\[\\^/)) {\n res = parseClassRanges();\n skip(']');\n return createCharacterClass(res, true, from, pos);\n } else if (match('[')) {\n res = parseClassRanges();\n skip(']');\n return createCharacterClass(res, false, from, pos);\n }\n\n return null;\n }\n\n function parseClassRanges() {\n // ClassRanges ::\n // [empty]\n // [~V] NonemptyClassRanges\n // [+V] ClassContents\n var res;\n\n if (current(']')) {\n // Empty array means nothing inside of the ClassRange.\n return {\n kind: 'union',\n body: []\n };\n } else if (hasUnicodeSetFlag) {\n return parseClassContents();\n } else {\n res = parseNonemptyClassRanges();\n\n if (!res) {\n bail('nonEmptyClassRanges');\n }\n\n return {\n kind: 'union',\n body: res\n };\n }\n }\n\n function parseHelperClassRanges(atom) {\n var from, to, res, atomTo, dash;\n\n if (current('-') && !next(']')) {\n // ClassAtom - ClassAtom ClassRanges\n from = atom.range[0];\n dash = createCharacter(match('-'));\n atomTo = parseClassAtom();\n\n if (!atomTo) {\n bail('classAtom');\n }\n\n to = pos; // Parse the next class range if exists.\n\n var classRanges = parseClassRanges();\n\n if (!classRanges) {\n bail('classRanges');\n } // Check if both the from and atomTo have codePoints.\n\n\n if (!('codePoint' in atom) || !('codePoint' in atomTo)) {\n if (!hasUnicodeFlag) {\n // If not, don't create a range but treat them as\n // `atom` `-` `atom` instead.\n //\n // SEE: https://tc39.es/ecma262/#sec-regular-expression-patterns-semantics\n // NonemptyClassRanges::ClassAtom-ClassAtomClassRanges\n // CharacterRangeOrUnion\n res = [atom, dash, atomTo];\n } else {\n // With unicode flag, both sides must have codePoints if\n // one side has a codePoint.\n //\n // SEE: https://tc39.es/ecma262/#sec-patterns-static-semantics-early-errors\n // NonemptyClassRanges :: ClassAtom - ClassAtom ClassRanges\n bail('invalid character class');\n }\n } else {\n res = [createClassRange(atom, atomTo, from, to)];\n }\n\n if (classRanges.type === 'empty') {\n return res;\n }\n\n return res.concat(classRanges.body);\n }\n\n res = parseNonemptyClassRangesNoDash();\n\n if (!res) {\n bail('nonEmptyClassRangesNoDash');\n }\n\n return [atom].concat(res);\n }\n\n function parseNonemptyClassRanges() {\n // NonemptyClassRanges ::\n // ClassAtom\n // ClassAtom NonemptyClassRangesNoDash\n // ClassAtom - ClassAtom ClassRanges\n var atom = parseClassAtom();\n\n if (!atom) {\n bail('classAtom');\n }\n\n if (current(']')) {\n // ClassAtom\n return [atom];\n } // ClassAtom NonemptyClassRangesNoDash\n // ClassAtom - ClassAtom ClassRanges\n\n\n return parseHelperClassRanges(atom);\n }\n\n function parseNonemptyClassRangesNoDash() {\n // NonemptyClassRangesNoDash ::\n // ClassAtom\n // ClassAtomNoDash NonemptyClassRangesNoDash\n // ClassAtomNoDash - ClassAtom ClassRanges\n var res = parseClassAtom();\n\n if (!res) {\n bail('classAtom');\n }\n\n if (current(']')) {\n // ClassAtom\n return res;\n } // ClassAtomNoDash NonemptyClassRangesNoDash\n // ClassAtomNoDash - ClassAtom ClassRanges\n\n\n return parseHelperClassRanges(res);\n }\n\n function parseClassAtom() {\n // ClassAtom ::\n // -\n // ClassAtomNoDash\n if (match('-')) {\n return createCharacter('-');\n } else {\n return parseClassAtomNoDash();\n }\n }\n\n function parseClassAtomNoDash() {\n // ClassAtomNoDash ::\n // SourceCharacter but not one of \\ or ] or -\n // \\ ClassEscape\n var res;\n\n if (res = matchReg(/^[^\\\\\\]-]/)) {\n return createCharacter(res[0]);\n } else if (match('\\\\')) {\n res = parseClassEscape();\n\n if (!res) {\n bail('classEscape');\n }\n\n return parseUnicodeSurrogatePairEscape(res);\n }\n }\n\n function parseClassContents() {\n // ClassContents ::\n // ClassUnion\n // ClassIntersection\n // ClassSubtraction\n //\n // ClassUnion ::\n // ClassRange ClassUnion?\n // ClassOperand ClassUnion?\n //\n // ClassIntersection ::\n // ClassOperand && [lookahead ≠ &] ClassOperand\n // ClassIntersection && [lookahead ≠ &] ClassOperand\n //\n // ClassSubtraction ::\n // ClassOperand -- ClassOperand\n // ClassSubtraction -- ClassOperand\n var body = [];\n var kind;\n var from = pos;\n var operand = parseClassOperand(\n /* allowRanges*/\n true);\n body.push(operand);\n\n if (operand.type === 'classRange') {\n kind = 'union';\n } else if (current('&')) {\n kind = 'intersection';\n } else if (current('-')) {\n kind = 'subtraction';\n } else {\n kind = 'union';\n }\n\n while (!current(']')) {\n if (kind === 'intersection') {\n skip('&');\n skip('&');\n\n if (current('&')) {\n bail('&& cannot be followed by &. Wrap it in parentheses: &&(&).');\n }\n } else if (kind === 'subtraction') {\n skip('-');\n skip('-');\n }\n\n operand = parseClassOperand(\n /* allowRanges*/\n kind === 'union');\n body.push(operand);\n }\n\n return {\n kind: kind,\n body: body\n };\n }\n\n function parseClassOperand(allowRanges) {\n // ClassOperand ::\n // ClassCharacter\n // ClassStrings\n // NestedClass\n //\n // NestedClass ::\n // [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n // [ ^ ClassRanges[+U,+V] ]\n // \\ CharacterClassEscape[+U, +V]\n //\n // ClassRange ::\n // ClassCharacter - ClassCharacter\n //\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n //\n // ClassSyntaxCharacter ::\n // one of ( ) [ ] { } / - \\ |\n var from = pos;\n var start, res;\n\n if (match('\\\\')) {\n if (res = parseCharacterClassEscape()) {\n start = res;\n } else if (res = parseClassCharacterEscapedHelper()) {\n // ClassOperand ::\n // ...\n // NestedClass\n //\n // NestedClass ::\n // ...\n // \\ CharacterClassEscape[+U, +V]\n return res;\n } else {\n bail('Invalid escape', '\\\\' + lookahead(), from);\n }\n } else if (res = parseClassCharacterUnescapedHelper()) {\n start = res;\n } else if (res = parseClassStrings() || parseCharacterClass()) {\n // ClassOperand ::\n // ...\n // ClassStrings\n // NestedClass\n //\n // NestedClass ::\n // [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n // [ ^ ClassRanges[+U,+V] ]\n // ...\n return res;\n } else {\n bail('Invalid character', lookahead());\n }\n\n if (allowRanges && current('-') && !next('-')) {\n skip('-');\n\n if (res = parseClassCharacter()) {\n // ClassRange ::\n // ClassCharacter - ClassCharacter\n return createClassRange(start, res, from, pos);\n }\n\n bail('Invalid range end', lookahead());\n } // ClassOperand ::\n // ClassCharacter\n // ...\n\n\n return start;\n }\n\n function parseClassCharacter() {\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n if (match('\\\\')) {\n if (res = parseClassCharacterEscapedHelper()) {\n return res;\n } else {\n bail('Invalid escape', '\\\\' + lookahead(), from);\n }\n }\n\n return parseClassCharacterUnescapedHelper();\n }\n\n function parseClassCharacterUnescapedHelper() {\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // ...\n var res;\n\n if (res = matchReg(/^[^()[\\]{}/\\-\\\\|]/)) {\n return createCharacter(res);\n }\n\n ;\n }\n\n function parseClassCharacterEscapedHelper() {\n // ClassCharacter ::\n // ...\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n if (match('b')) {\n return createEscaped('singleEscape', 0x0008, '\\\\b');\n } else if (match('B')) {\n bail('\\\\B not possible inside of ClassContents', '', pos - 2);\n } else if (res = matchReg(/^[&\\-!#%,:;<=>@_`~]/)) {\n return createEscaped('identifier', res[0].codePointAt(0), res[0]);\n } else if (res = parseCharacterEscape()) {\n return res;\n } else {\n return null;\n }\n }\n\n function parseClassStrings() {\n // ClassStrings ::\n // ( ClassString MoreClassStrings? )\n var res = [];\n var from = pos;\n\n if (!match('(')) {\n return null;\n }\n\n do {\n res.push(parseClassString());\n } while (match('|'));\n\n skip(')');\n return createClassStrings(res, from, pos);\n }\n\n function parseClassString() {\n // ClassString ::\n // [empty]\n // NonEmptyClassString\n //\n // NonEmptyClassString ::\n // ClassCharacter NonEmptyClassString?\n var res = [],\n from = pos;\n var char;\n\n while (char = parseClassCharacter()) {\n res.push(char);\n }\n\n return createClassString(res, from, pos);\n }\n\n function bail(message, details, from, to) {\n from = from == null ? pos : from;\n to = to == null ? from : to;\n var contextStart = Math.max(0, from - 10);\n var contextEnd = Math.min(to + 10, str.length); // Output a bit of context and a line pointing to where our error is.\n //\n // We are assuming that there are no actual newlines in the content as this is a regular expression.\n\n var context = ' ' + str.substring(contextStart, contextEnd);\n var pointer = ' ' + new Array(from - contextStart + 1).join(' ') + '^';\n throw SyntaxError(message + ' at position ' + from + (details ? ': ' + details : '') + '\\n' + context + '\\n' + pointer);\n }\n\n var backrefDenied = [];\n var closedCaptureCounter = 0;\n var firstIteration = true;\n var hasUnicodeFlag = (flags || \"\").indexOf(\"u\") !== -1;\n var hasUnicodeSetFlag = (flags || \"\").indexOf(\"v\") !== -1;\n var pos = 0;\n\n if (hasUnicodeSetFlag && !features.unicodeSet) {\n throw new Error('The \"v\" flag is only supported when the .unicodeSet option is enabled.');\n }\n\n if (hasUnicodeFlag && hasUnicodeSetFlag) {\n throw new Error('The \"u\" and \"v\" flags are mutually exclusive.');\n } // Convert the input to a string and treat the empty string special.\n\n\n str = String(str);\n\n if (str === '') {\n str = '(?:)';\n }\n\n var result = parseDisjunction();\n\n if (result.range[1] !== str.length) {\n bail('Could not parse entire input - got stuck', '', result.range[1]);\n } // The spec requires to interpret the `\\2` in `/\\2()()/` as backreference.\n // As the parser collects the number of capture groups as the string is\n // parsed it is impossible to make these decisions at the point when the\n // `\\2` is handled. In case the local decision turns out to be wrong after\n // the parsing has finished, the input string is parsed a second time with\n // the total number of capture groups set.\n //\n // SEE: https://github.com/jviereck/regjsparser/issues/70\n\n\n for (var i = 0; i < backrefDenied.length; i++) {\n if (backrefDenied[i] <= closedCaptureCounter) {\n // Parse the input a second time.\n pos = 0;\n firstIteration = false;\n return parseDisjunction();\n }\n }\n\n return result;\n }\n\n var regjsparser = {\n parse: parse\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = regjsparser;\n } else {\n window.regjsparser = regjsparser;\n }\n})();","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0; // TODO(v5): Remove legacy setting and default to \"always\"\n\nconst applyTrailingSlashOption = function (input) {\n let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"legacy\";\n const hasHtmlSuffix = input.endsWith(\".html\");\n const hasXmlSuffix = input.endsWith(\".xml\");\n const hasPdfSuffix = input.endsWith(\".pdf\");\n if (input === \"/\") return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = \"never\";\n }\n\n if (option === \"always\") {\n return input.endsWith(\"/\") ? input : \"\".concat(input, \"/\");\n }\n\n if (option === \"never\") {\n return input.endsWith(\"/\") ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","import escapeStringRegexp from \"escape-string-regexp\";\nimport { withPrefix } from \"gatsby\";\nexport const userIsForcingNavigation = event => event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey; // IE does not include leading slash in anchor.pathname\n\nexport const slashedPathname = pathname => pathname[0] === \"/\" ? pathname : \"/\".concat(pathname);\nexport const navigationWasHandledElsewhere = event => event.defaultPrevented;\nexport const findClosestAnchor = node => {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === \"a\") {\n return node;\n }\n }\n\n return null;\n};\nexport const anchorsTargetIsEquivalentToSelf = anchor =>\n/* If target attribute is not present it's treated as _self */\nanchor.hasAttribute(\"target\") === false ||\n/**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n/**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\nanchor.target == null ||\n/**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n[\"_self\", \"\"].includes(anchor.target) ||\n/**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\nanchor.target === \"_parent\" && (!anchor.ownerDocument.defaultView.parent || // Assumption: This can be falsey\nanchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === \"_top\" && (!anchor.ownerDocument.defaultView.top || // Assumption: This can be falsey\nanchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView);\nexport const authorIsForcingNavigation = anchor =>\n/**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\nanchor.hasAttribute(\"download\") === true ||\n/**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\nanchorsTargetIsEquivalentToSelf(anchor) === false; // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n\nexport const urlsAreOnSameOrigin = (origin, destination) => origin.protocol === destination.protocol &&\n/* a.host includes both hostname and port in the expected format host:port */\norigin.host === destination.host;\nexport const pathIsNotHandledByApp = (destination, pathStartRegEx) => {\n const pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\nexport const hashShouldBeFollowed = (origin, destination) => destination.hash !== \"\" && (\n/**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\ndestination.pathname === \"\" ||\n/* Don't catch links pointed to the same page but with a hash. */\ndestination.pathname === origin.pathname);\nexport const routeThroughBrowserOrApp = (hrefHandler, pluginOptions) => event => {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n const clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true; // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n\n const destination = document.createElement(\"a\"); // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like ` example `, the href getter returns empty string.\n\n if (clickedAnchor.href !== \"\") {\n destination.href = clickedAnchor.href;\n }\n\n if (\"SVGAnimatedString\" in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n } // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n\n\n const origin = document.createElement(\"a\");\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true; // Regex to test pathname against pathPrefix\n\n const pathStartRegEx = new RegExp(\"^\".concat(escapeStringRegexp(withPrefix(\"/\"))));\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n\n if (pluginOptions.excludePattern) {\n const excludeRegex = new RegExp(pluginOptions.excludePattern);\n\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n\n event.preventDefault(); // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n\n const destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, \"/\");\n hrefHandler(\"\".concat(destinationPathname).concat(destination.search).concat(destination.hash));\n return false;\n};\nexport default function (root, pluginOptions, cb) {\n const clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(\"click\", clickHandler);\n return () => root.removeEventListener(\"click\", clickHandler);\n}","import { navigate } from \"gatsby\";\nimport catchLinks from \"./catch-links\";\nexport const onClientEntry = function (_) {\n let pluginOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n catchLinks(window, pluginOptions, href => {\n navigate(href);\n });\n};","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return str.replace(matchOperatorsRe, '\\\\$&');\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\nexport const onRouteUpdate = function onRouteUpdate(_ref, pluginOptions) {\n let {\n location\n } = _ref;\n\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\n\n\nvar _default = function (pathname, localizedManifests) {\n let shouldPrependPathPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\".concat(localizedManifest.lang, \".webmanifest\");\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styledComponents = require(\"styled-components\"); // eslint-disable-next-line react/prop-types,react/display-name\n\n\nexports.wrapRootElement = function (_ref, pluginOptions) {\n var element = _ref.element;\n return /*#__PURE__*/_react.default.createElement(_styledComponents.StyleSheetManager, {\n disableVendorPrefixes: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.disableVendorPrefixes) === true\n }, element);\n};","\"use strict\";\n\nvar offsetY = 0;\n\nvar getTargetOffset = function getTargetOffset(hash) {\n var id = window.decodeURI(hash.replace(\"#\", \"\"));\n\n if (id !== \"\") {\n var element = document.getElementById(id);\n\n if (element) {\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;\n var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;\n var computedStyles = window.getComputedStyle(element);\n var scrollMarginTop = computedStyles.getPropertyValue(\"scroll-margin-top\") || computedStyles.getPropertyValue(\"scroll-snap-margin-top\") || \"0px\";\n return element.getBoundingClientRect().top + scrollTop - parseInt(scrollMarginTop, 10) - clientTop - offsetY;\n }\n }\n\n return null;\n};\n\nexports.onInitialClientRender = function (_, pluginOptions) {\n if (pluginOptions.offsetY) {\n offsetY = pluginOptions.offsetY;\n }\n\n requestAnimationFrame(function () {\n var offset = getTargetOffset(window.location.hash);\n\n if (offset !== null) {\n window.scrollTo(0, offset);\n }\n });\n};\n\nexports.shouldUpdateScroll = function (_ref) {\n var location = _ref.routerProps.location;\n var offset = getTargetOffset(location.hash);\n return offset !== null ? [0, offset] : true;\n};","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n withAvif: false,\n tracedSVG: false,\n loading: \"lazy\",\n decoding: \"async\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.EMPTY_ALT = \"GATSBY_EMPTY_ALT\";\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\n\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass); // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n\n var _loop = function _loop(i) {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop(i);\n }\n};","\"use strict\";\n\nmodule.exports = Object.assign;","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\"); // Makes sure off-main-thread scripts are loaded in `gatsby develop`\n\n\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== \"development\") {\n return;\n }\n\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n}; // Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\n\n\nexports.onInitialClientRender = onInitialClientRender;","\"use strict\";\n\nrequire(\"core-js/modules/es.array.unscopables.flat-map.js\");\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\"); // Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\n\n\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n\n const existingSnippet = document.querySelector(\"script[data-partytown]\");\n const existingSandbox = document.querySelector(\"iframe[src*=\\\"~partytown/partytown-sandbox-sw\\\"]\");\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\n\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(\"script\");\n snippet.dataset.partytown = \"\";\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfor (var i = 0; i < chars.length; i++) {\n charToInteger[chars.charCodeAt(i)] = i;\n}\n\nfunction decode(mappings) {\n var decoded = [];\n var line = [];\n var segment = [0, 0, 0, 0, 0];\n var j = 0;\n\n for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n var c = mappings.charCodeAt(i);\n\n if (c === 44) {\n // \",\"\n segmentify(line, segment, j);\n j = 0;\n } else if (c === 59) {\n // \";\"\n segmentify(line, segment, j);\n j = 0;\n decoded.push(line);\n line = [];\n segment[0] = 0;\n } else {\n var integer = charToInteger[c];\n\n if (integer === undefined) {\n throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n }\n\n var hasContinuationBit = integer & 32;\n integer &= 31;\n value += integer << shift;\n\n if (hasContinuationBit) {\n shift += 5;\n } else {\n var shouldNegate = value & 1;\n value >>>= 1;\n\n if (shouldNegate) {\n value = value === 0 ? -0x80000000 : -value;\n }\n\n segment[j] += value;\n j++;\n value = shift = 0; // reset\n }\n }\n }\n\n segmentify(line, segment, j);\n decoded.push(line);\n return decoded;\n}\n\nfunction segmentify(line, segment, j) {\n // This looks ugly, but we're creating specialized arrays with a specific\n // length. This is much faster than creating a new array (which v8 expands to\n // a capacity of 17 after pushing the first item), or slicing out a subarray\n // (which is slow). Length 4 is assumed to be the most frequent, followed by\n // length 5 (since not everything will have an associated name), followed by\n // length 1 (it's probably rare for a source substring to not have an\n // associated segment data).\n if (j === 4) line.push([segment[0], segment[1], segment[2], segment[3]]);else if (j === 5) line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);else if (j === 1) line.push([segment[0]]);\n}\n\nfunction encode(decoded) {\n var sourceFileIndex = 0; // second field\n\n var sourceCodeLine = 0; // third field\n\n var sourceCodeColumn = 0; // fourth field\n\n var nameIndex = 0; // fifth field\n\n var mappings = '';\n\n for (var i = 0; i < decoded.length; i++) {\n var line = decoded[i];\n if (i > 0) mappings += ';';\n if (line.length === 0) continue;\n var generatedCodeColumn = 0; // first field\n\n var lineMappings = [];\n\n for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n var segment = line_1[_i];\n var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n generatedCodeColumn = segment[0];\n\n if (segment.length > 1) {\n segmentMappings += encodeInteger(segment[1] - sourceFileIndex) + encodeInteger(segment[2] - sourceCodeLine) + encodeInteger(segment[3] - sourceCodeColumn);\n sourceFileIndex = segment[1];\n sourceCodeLine = segment[2];\n sourceCodeColumn = segment[3];\n }\n\n if (segment.length === 5) {\n segmentMappings += encodeInteger(segment[4] - nameIndex);\n nameIndex = segment[4];\n }\n\n lineMappings.push(segmentMappings);\n }\n\n mappings += lineMappings.join(',');\n }\n\n return mappings;\n}\n\nfunction encodeInteger(num) {\n var result = '';\n num = num < 0 ? -num << 1 | 1 : num << 1;\n\n do {\n var clamped = num & 31;\n num >>>= 5;\n\n if (num > 0) {\n clamped |= 32;\n }\n\n result += chars[clamped];\n } while (num > 0);\n\n return result;\n}\n\nexport { decode, encode };","import { encode } from 'sourcemap-codec';\n\nvar BitSet = function BitSet(arg) {\n this.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n};\n\nBitSet.prototype.add = function add(n) {\n this.bits[n >> 5] |= 1 << (n & 31);\n};\n\nBitSet.prototype.has = function has(n) {\n return !!(this.bits[n >> 5] & 1 << (n & 31));\n};\n\nvar Chunk = function Chunk(start, end, content) {\n this.start = start;\n this.end = end;\n this.original = content;\n this.intro = '';\n this.outro = '';\n this.content = content;\n this.storeName = false;\n this.edited = false; // we make these non-enumerable, for sanity while debugging\n\n Object.defineProperties(this, {\n previous: {\n writable: true,\n value: null\n },\n next: {\n writable: true,\n value: null\n }\n });\n};\n\nChunk.prototype.appendLeft = function appendLeft(content) {\n this.outro += content;\n};\n\nChunk.prototype.appendRight = function appendRight(content) {\n this.intro = this.intro + content;\n};\n\nChunk.prototype.clone = function clone() {\n var chunk = new Chunk(this.start, this.end, this.original);\n chunk.intro = this.intro;\n chunk.outro = this.outro;\n chunk.content = this.content;\n chunk.storeName = this.storeName;\n chunk.edited = this.edited;\n return chunk;\n};\n\nChunk.prototype.contains = function contains(index) {\n return this.start < index && index < this.end;\n};\n\nChunk.prototype.eachNext = function eachNext(fn) {\n var chunk = this;\n\n while (chunk) {\n fn(chunk);\n chunk = chunk.next;\n }\n};\n\nChunk.prototype.eachPrevious = function eachPrevious(fn) {\n var chunk = this;\n\n while (chunk) {\n fn(chunk);\n chunk = chunk.previous;\n }\n};\n\nChunk.prototype.edit = function edit(content, storeName, contentOnly) {\n this.content = content;\n\n if (!contentOnly) {\n this.intro = '';\n this.outro = '';\n }\n\n this.storeName = storeName;\n this.edited = true;\n return this;\n};\n\nChunk.prototype.prependLeft = function prependLeft(content) {\n this.outro = content + this.outro;\n};\n\nChunk.prototype.prependRight = function prependRight(content) {\n this.intro = content + this.intro;\n};\n\nChunk.prototype.split = function split(index) {\n var sliceIndex = index - this.start;\n var originalBefore = this.original.slice(0, sliceIndex);\n var originalAfter = this.original.slice(sliceIndex);\n this.original = originalBefore;\n var newChunk = new Chunk(index, this.end, originalAfter);\n newChunk.outro = this.outro;\n this.outro = '';\n this.end = index;\n\n if (this.edited) {\n // TODO is this block necessary?...\n newChunk.edit('', false);\n this.content = '';\n } else {\n this.content = originalBefore;\n }\n\n newChunk.next = this.next;\n\n if (newChunk.next) {\n newChunk.next.previous = newChunk;\n }\n\n newChunk.previous = this;\n this.next = newChunk;\n return newChunk;\n};\n\nChunk.prototype.toString = function toString() {\n return this.intro + this.content + this.outro;\n};\n\nChunk.prototype.trimEnd = function trimEnd(rx) {\n this.outro = this.outro.replace(rx, '');\n\n if (this.outro.length) {\n return true;\n }\n\n var trimmed = this.content.replace(rx, '');\n\n if (trimmed.length) {\n if (trimmed !== this.content) {\n this.split(this.start + trimmed.length).edit('', undefined, true);\n }\n\n return true;\n } else {\n this.edit('', undefined, true);\n this.intro = this.intro.replace(rx, '');\n\n if (this.intro.length) {\n return true;\n }\n }\n};\n\nChunk.prototype.trimStart = function trimStart(rx) {\n this.intro = this.intro.replace(rx, '');\n\n if (this.intro.length) {\n return true;\n }\n\n var trimmed = this.content.replace(rx, '');\n\n if (trimmed.length) {\n if (trimmed !== this.content) {\n this.split(this.end - trimmed.length);\n this.edit('', undefined, true);\n }\n\n return true;\n } else {\n this.edit('', undefined, true);\n this.outro = this.outro.replace(rx, '');\n\n if (this.outro.length) {\n return true;\n }\n }\n};\n\nvar btoa = function () {\n throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n};\n\nif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n btoa = function (str) {\n return window.btoa(unescape(encodeURIComponent(str)));\n };\n} else if (typeof Buffer === 'function') {\n btoa = function (str) {\n return Buffer.from(str, 'utf-8').toString('base64');\n };\n}\n\nvar SourceMap = function SourceMap(properties) {\n this.version = 3;\n this.file = properties.file;\n this.sources = properties.sources;\n this.sourcesContent = properties.sourcesContent;\n this.names = properties.names;\n this.mappings = encode(properties.mappings);\n};\n\nSourceMap.prototype.toString = function toString() {\n return JSON.stringify(this);\n};\n\nSourceMap.prototype.toUrl = function toUrl() {\n return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n};\n\nfunction guessIndent(code) {\n var lines = code.split('\\n');\n var tabbed = lines.filter(function (line) {\n return /^\\t+/.test(line);\n });\n var spaced = lines.filter(function (line) {\n return /^ {2,}/.test(line);\n });\n\n if (tabbed.length === 0 && spaced.length === 0) {\n return null;\n } // More lines tabbed than spaced? Assume tabs, and\n // default to tabs in the case of a tie (or nothing\n // to go on)\n\n\n if (tabbed.length >= spaced.length) {\n return '\\t';\n } // Otherwise, we need to guess the multiple\n\n\n var min = spaced.reduce(function (previous, current) {\n var numSpaces = /^ +/.exec(current)[0].length;\n return Math.min(numSpaces, previous);\n }, Infinity);\n return new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n var fromParts = from.split(/[/\\\\]/);\n var toParts = to.split(/[/\\\\]/);\n fromParts.pop(); // get dirname\n\n while (fromParts[0] === toParts[0]) {\n fromParts.shift();\n toParts.shift();\n }\n\n if (fromParts.length) {\n var i = fromParts.length;\n\n while (i--) {\n fromParts[i] = '..';\n }\n }\n\n return fromParts.concat(toParts).join('/');\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n return toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n var originalLines = source.split('\\n');\n var lineOffsets = [];\n\n for (var i = 0, pos = 0; i < originalLines.length; i++) {\n lineOffsets.push(pos);\n pos += originalLines[i].length + 1;\n }\n\n return function locate(index) {\n var i = 0;\n var j = lineOffsets.length;\n\n while (i < j) {\n var m = i + j >> 1;\n\n if (index < lineOffsets[m]) {\n j = m;\n } else {\n i = m + 1;\n }\n }\n\n var line = i - 1;\n var column = index - lineOffsets[line];\n return {\n line: line,\n column: column\n };\n };\n}\n\nvar Mappings = function Mappings(hires) {\n this.hires = hires;\n this.generatedCodeLine = 0;\n this.generatedCodeColumn = 0;\n this.raw = [];\n this.rawSegments = this.raw[this.generatedCodeLine] = [];\n this.pending = null;\n};\n\nMappings.prototype.addEdit = function addEdit(sourceIndex, content, loc, nameIndex) {\n if (content.length) {\n var segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n if (nameIndex >= 0) {\n segment.push(nameIndex);\n }\n\n this.rawSegments.push(segment);\n } else if (this.pending) {\n this.rawSegments.push(this.pending);\n }\n\n this.advance(content);\n this.pending = null;\n};\n\nMappings.prototype.addUneditedChunk = function addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n var originalCharIndex = chunk.start;\n var first = true;\n\n while (originalCharIndex < chunk.end) {\n if (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n this.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);\n }\n\n if (original[originalCharIndex] === '\\n') {\n loc.line += 1;\n loc.column = 0;\n this.generatedCodeLine += 1;\n this.raw[this.generatedCodeLine] = this.rawSegments = [];\n this.generatedCodeColumn = 0;\n first = true;\n } else {\n loc.column += 1;\n this.generatedCodeColumn += 1;\n first = false;\n }\n\n originalCharIndex += 1;\n }\n\n this.pending = null;\n};\n\nMappings.prototype.advance = function advance(str) {\n if (!str) {\n return;\n }\n\n var lines = str.split('\\n');\n\n if (lines.length > 1) {\n for (var i = 0; i < lines.length - 1; i++) {\n this.generatedCodeLine++;\n this.raw[this.generatedCodeLine] = this.rawSegments = [];\n }\n\n this.generatedCodeColumn = 0;\n }\n\n this.generatedCodeColumn += lines[lines.length - 1].length;\n};\n\nvar n = '\\n';\nvar warned = {\n insertLeft: false,\n insertRight: false,\n storeName: false\n};\n\nvar MagicString = function MagicString(string, options) {\n if (options === void 0) options = {};\n var chunk = new Chunk(0, string.length, string);\n Object.defineProperties(this, {\n original: {\n writable: true,\n value: string\n },\n outro: {\n writable: true,\n value: ''\n },\n intro: {\n writable: true,\n value: ''\n },\n firstChunk: {\n writable: true,\n value: chunk\n },\n lastChunk: {\n writable: true,\n value: chunk\n },\n lastSearchedChunk: {\n writable: true,\n value: chunk\n },\n byStart: {\n writable: true,\n value: {}\n },\n byEnd: {\n writable: true,\n value: {}\n },\n filename: {\n writable: true,\n value: options.filename\n },\n indentExclusionRanges: {\n writable: true,\n value: options.indentExclusionRanges\n },\n sourcemapLocations: {\n writable: true,\n value: new BitSet()\n },\n storedNames: {\n writable: true,\n value: {}\n },\n indentStr: {\n writable: true,\n value: guessIndent(string)\n }\n });\n this.byStart[0] = chunk;\n this.byEnd[string.length] = chunk;\n};\n\nMagicString.prototype.addSourcemapLocation = function addSourcemapLocation(char) {\n this.sourcemapLocations.add(char);\n};\n\nMagicString.prototype.append = function append(content) {\n if (typeof content !== 'string') {\n throw new TypeError('outro content must be a string');\n }\n\n this.outro += content;\n return this;\n};\n\nMagicString.prototype.appendLeft = function appendLeft(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byEnd[index];\n\n if (chunk) {\n chunk.appendLeft(content);\n } else {\n this.intro += content;\n }\n\n return this;\n};\n\nMagicString.prototype.appendRight = function appendRight(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byStart[index];\n\n if (chunk) {\n chunk.appendRight(content);\n } else {\n this.outro += content;\n }\n\n return this;\n};\n\nMagicString.prototype.clone = function clone() {\n var cloned = new MagicString(this.original, {\n filename: this.filename\n });\n var originalChunk = this.firstChunk;\n var clonedChunk = cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone();\n\n while (originalChunk) {\n cloned.byStart[clonedChunk.start] = clonedChunk;\n cloned.byEnd[clonedChunk.end] = clonedChunk;\n var nextOriginalChunk = originalChunk.next;\n var nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n if (nextClonedChunk) {\n clonedChunk.next = nextClonedChunk;\n nextClonedChunk.previous = clonedChunk;\n clonedChunk = nextClonedChunk;\n }\n\n originalChunk = nextOriginalChunk;\n }\n\n cloned.lastChunk = clonedChunk;\n\n if (this.indentExclusionRanges) {\n cloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n }\n\n cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n cloned.intro = this.intro;\n cloned.outro = this.outro;\n return cloned;\n};\n\nMagicString.prototype.generateDecodedMap = function generateDecodedMap(options) {\n var this$1$1 = this;\n options = options || {};\n var sourceIndex = 0;\n var names = Object.keys(this.storedNames);\n var mappings = new Mappings(options.hires);\n var locate = getLocator(this.original);\n\n if (this.intro) {\n mappings.advance(this.intro);\n }\n\n this.firstChunk.eachNext(function (chunk) {\n var loc = locate(chunk.start);\n\n if (chunk.intro.length) {\n mappings.advance(chunk.intro);\n }\n\n if (chunk.edited) {\n mappings.addEdit(sourceIndex, chunk.content, loc, chunk.storeName ? names.indexOf(chunk.original) : -1);\n } else {\n mappings.addUneditedChunk(sourceIndex, chunk, this$1$1.original, loc, this$1$1.sourcemapLocations);\n }\n\n if (chunk.outro.length) {\n mappings.advance(chunk.outro);\n }\n });\n return {\n file: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n sources: [options.source ? getRelativePath(options.file || '', options.source) : null],\n sourcesContent: options.includeContent ? [this.original] : [null],\n names: names,\n mappings: mappings.raw\n };\n};\n\nMagicString.prototype.generateMap = function generateMap(options) {\n return new SourceMap(this.generateDecodedMap(options));\n};\n\nMagicString.prototype.getIndentString = function getIndentString() {\n return this.indentStr === null ? '\\t' : this.indentStr;\n};\n\nMagicString.prototype.indent = function indent(indentStr, options) {\n var pattern = /^[^\\r\\n]/gm;\n\n if (isObject(indentStr)) {\n options = indentStr;\n indentStr = undefined;\n }\n\n indentStr = indentStr !== undefined ? indentStr : this.indentStr || '\\t';\n\n if (indentStr === '') {\n return this;\n } // noop\n\n\n options = options || {}; // Process exclusion ranges\n\n var isExcluded = {};\n\n if (options.exclude) {\n var exclusions = typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n exclusions.forEach(function (exclusion) {\n for (var i = exclusion[0]; i < exclusion[1]; i += 1) {\n isExcluded[i] = true;\n }\n });\n }\n\n var shouldIndentNextCharacter = options.indentStart !== false;\n\n var replacer = function (match) {\n if (shouldIndentNextCharacter) {\n return \"\" + indentStr + match;\n }\n\n shouldIndentNextCharacter = true;\n return match;\n };\n\n this.intro = this.intro.replace(pattern, replacer);\n var charIndex = 0;\n var chunk = this.firstChunk;\n\n while (chunk) {\n var end = chunk.end;\n\n if (chunk.edited) {\n if (!isExcluded[charIndex]) {\n chunk.content = chunk.content.replace(pattern, replacer);\n\n if (chunk.content.length) {\n shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n }\n }\n } else {\n charIndex = chunk.start;\n\n while (charIndex < end) {\n if (!isExcluded[charIndex]) {\n var char = this.original[charIndex];\n\n if (char === '\\n') {\n shouldIndentNextCharacter = true;\n } else if (char !== '\\r' && shouldIndentNextCharacter) {\n shouldIndentNextCharacter = false;\n\n if (charIndex === chunk.start) {\n chunk.prependRight(indentStr);\n } else {\n this._splitChunk(chunk, charIndex);\n\n chunk = chunk.next;\n chunk.prependRight(indentStr);\n }\n }\n }\n\n charIndex += 1;\n }\n }\n\n charIndex = chunk.end;\n chunk = chunk.next;\n }\n\n this.outro = this.outro.replace(pattern, replacer);\n return this;\n};\n\nMagicString.prototype.insert = function insert() {\n throw new Error('magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)');\n};\n\nMagicString.prototype.insertLeft = function insertLeft(index, content) {\n if (!warned.insertLeft) {\n console.warn('magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'); // eslint-disable-line no-console\n\n warned.insertLeft = true;\n }\n\n return this.appendLeft(index, content);\n};\n\nMagicString.prototype.insertRight = function insertRight(index, content) {\n if (!warned.insertRight) {\n console.warn('magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'); // eslint-disable-line no-console\n\n warned.insertRight = true;\n }\n\n return this.prependRight(index, content);\n};\n\nMagicString.prototype.move = function move(start, end, index) {\n if (index >= start && index <= end) {\n throw new Error('Cannot move a selection inside itself');\n }\n\n this._split(start);\n\n this._split(end);\n\n this._split(index);\n\n var first = this.byStart[start];\n var last = this.byEnd[end];\n var oldLeft = first.previous;\n var oldRight = last.next;\n var newRight = this.byStart[index];\n\n if (!newRight && last === this.lastChunk) {\n return this;\n }\n\n var newLeft = newRight ? newRight.previous : this.lastChunk;\n\n if (oldLeft) {\n oldLeft.next = oldRight;\n }\n\n if (oldRight) {\n oldRight.previous = oldLeft;\n }\n\n if (newLeft) {\n newLeft.next = first;\n }\n\n if (newRight) {\n newRight.previous = last;\n }\n\n if (!first.previous) {\n this.firstChunk = last.next;\n }\n\n if (!last.next) {\n this.lastChunk = first.previous;\n this.lastChunk.next = null;\n }\n\n first.previous = newLeft;\n last.next = newRight || null;\n\n if (!newLeft) {\n this.firstChunk = first;\n }\n\n if (!newRight) {\n this.lastChunk = last;\n }\n\n return this;\n};\n\nMagicString.prototype.overwrite = function overwrite(start, end, content, options) {\n if (typeof content !== 'string') {\n throw new TypeError('replacement content must be a string');\n }\n\n while (start < 0) {\n start += this.original.length;\n }\n\n while (end < 0) {\n end += this.original.length;\n }\n\n if (end > this.original.length) {\n throw new Error('end is out of bounds');\n }\n\n if (start === end) {\n throw new Error('Cannot overwrite a zero-length range – use appendLeft or prependRight instead');\n }\n\n this._split(start);\n\n this._split(end);\n\n if (options === true) {\n if (!warned.storeName) {\n console.warn('The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'); // eslint-disable-line no-console\n\n warned.storeName = true;\n }\n\n options = {\n storeName: true\n };\n }\n\n var storeName = options !== undefined ? options.storeName : false;\n var contentOnly = options !== undefined ? options.contentOnly : false;\n\n if (storeName) {\n var original = this.original.slice(start, end);\n Object.defineProperty(this.storedNames, original, {\n writable: true,\n value: true,\n enumerable: true\n });\n }\n\n var first = this.byStart[start];\n var last = this.byEnd[end];\n\n if (first) {\n var chunk = first;\n\n while (chunk !== last) {\n if (chunk.next !== this.byStart[chunk.end]) {\n throw new Error('Cannot overwrite across a split point');\n }\n\n chunk = chunk.next;\n chunk.edit('', false);\n }\n\n first.edit(content, storeName, contentOnly);\n } else {\n // must be inserting at the end\n var newChunk = new Chunk(start, end, '').edit(content, storeName); // TODO last chunk in the array may not be the last chunk, if it's moved...\n\n last.next = newChunk;\n newChunk.previous = last;\n }\n\n return this;\n};\n\nMagicString.prototype.prepend = function prepend(content) {\n if (typeof content !== 'string') {\n throw new TypeError('outro content must be a string');\n }\n\n this.intro = content + this.intro;\n return this;\n};\n\nMagicString.prototype.prependLeft = function prependLeft(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byEnd[index];\n\n if (chunk) {\n chunk.prependLeft(content);\n } else {\n this.intro = content + this.intro;\n }\n\n return this;\n};\n\nMagicString.prototype.prependRight = function prependRight(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byStart[index];\n\n if (chunk) {\n chunk.prependRight(content);\n } else {\n this.outro = content + this.outro;\n }\n\n return this;\n};\n\nMagicString.prototype.remove = function remove(start, end) {\n while (start < 0) {\n start += this.original.length;\n }\n\n while (end < 0) {\n end += this.original.length;\n }\n\n if (start === end) {\n return this;\n }\n\n if (start < 0 || end > this.original.length) {\n throw new Error('Character is out of bounds');\n }\n\n if (start > end) {\n throw new Error('end must be greater than start');\n }\n\n this._split(start);\n\n this._split(end);\n\n var chunk = this.byStart[start];\n\n while (chunk) {\n chunk.intro = '';\n chunk.outro = '';\n chunk.edit('');\n chunk = end > chunk.end ? this.byStart[chunk.end] : null;\n }\n\n return this;\n};\n\nMagicString.prototype.lastChar = function lastChar() {\n if (this.outro.length) {\n return this.outro[this.outro.length - 1];\n }\n\n var chunk = this.lastChunk;\n\n do {\n if (chunk.outro.length) {\n return chunk.outro[chunk.outro.length - 1];\n }\n\n if (chunk.content.length) {\n return chunk.content[chunk.content.length - 1];\n }\n\n if (chunk.intro.length) {\n return chunk.intro[chunk.intro.length - 1];\n }\n } while (chunk = chunk.previous);\n\n if (this.intro.length) {\n return this.intro[this.intro.length - 1];\n }\n\n return '';\n};\n\nMagicString.prototype.lastLine = function lastLine() {\n var lineIndex = this.outro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return this.outro.substr(lineIndex + 1);\n }\n\n var lineStr = this.outro;\n var chunk = this.lastChunk;\n\n do {\n if (chunk.outro.length > 0) {\n lineIndex = chunk.outro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return chunk.outro.substr(lineIndex + 1) + lineStr;\n }\n\n lineStr = chunk.outro + lineStr;\n }\n\n if (chunk.content.length > 0) {\n lineIndex = chunk.content.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return chunk.content.substr(lineIndex + 1) + lineStr;\n }\n\n lineStr = chunk.content + lineStr;\n }\n\n if (chunk.intro.length > 0) {\n lineIndex = chunk.intro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return chunk.intro.substr(lineIndex + 1) + lineStr;\n }\n\n lineStr = chunk.intro + lineStr;\n }\n } while (chunk = chunk.previous);\n\n lineIndex = this.intro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return this.intro.substr(lineIndex + 1) + lineStr;\n }\n\n return this.intro + lineStr;\n};\n\nMagicString.prototype.slice = function slice(start, end) {\n if (start === void 0) start = 0;\n if (end === void 0) end = this.original.length;\n\n while (start < 0) {\n start += this.original.length;\n }\n\n while (end < 0) {\n end += this.original.length;\n }\n\n var result = ''; // find start chunk\n\n var chunk = this.firstChunk;\n\n while (chunk && (chunk.start > start || chunk.end <= start)) {\n // found end chunk before start\n if (chunk.start < end && chunk.end >= end) {\n return result;\n }\n\n chunk = chunk.next;\n }\n\n if (chunk && chunk.edited && chunk.start !== start) {\n throw new Error(\"Cannot use replaced character \" + start + \" as slice start anchor.\");\n }\n\n var startChunk = chunk;\n\n while (chunk) {\n if (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n result += chunk.intro;\n }\n\n var containsEnd = chunk.start < end && chunk.end >= end;\n\n if (containsEnd && chunk.edited && chunk.end !== end) {\n throw new Error(\"Cannot use replaced character \" + end + \" as slice end anchor.\");\n }\n\n var sliceStart = startChunk === chunk ? start - chunk.start : 0;\n var sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n result += chunk.content.slice(sliceStart, sliceEnd);\n\n if (chunk.outro && (!containsEnd || chunk.end === end)) {\n result += chunk.outro;\n }\n\n if (containsEnd) {\n break;\n }\n\n chunk = chunk.next;\n }\n\n return result;\n}; // TODO deprecate this? not really very useful\n\n\nMagicString.prototype.snip = function snip(start, end) {\n var clone = this.clone();\n clone.remove(0, start);\n clone.remove(end, clone.original.length);\n return clone;\n};\n\nMagicString.prototype._split = function _split(index) {\n if (this.byStart[index] || this.byEnd[index]) {\n return;\n }\n\n var chunk = this.lastSearchedChunk;\n var searchForward = index > chunk.end;\n\n while (chunk) {\n if (chunk.contains(index)) {\n return this._splitChunk(chunk, index);\n }\n\n chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n }\n};\n\nMagicString.prototype._splitChunk = function _splitChunk(chunk, index) {\n if (chunk.edited && chunk.content.length) {\n // zero-length edited chunks are a special case (overlapping replacements)\n var loc = getLocator(this.original)(index);\n throw new Error(\"Cannot split a chunk that has already been edited (\" + loc.line + \":\" + loc.column + \" – \\\"\" + chunk.original + \"\\\")\");\n }\n\n var newChunk = chunk.split(index);\n this.byEnd[index] = chunk;\n this.byStart[index] = newChunk;\n this.byEnd[newChunk.end] = newChunk;\n\n if (chunk === this.lastChunk) {\n this.lastChunk = newChunk;\n }\n\n this.lastSearchedChunk = chunk;\n return true;\n};\n\nMagicString.prototype.toString = function toString() {\n var str = this.intro;\n var chunk = this.firstChunk;\n\n while (chunk) {\n str += chunk.toString();\n chunk = chunk.next;\n }\n\n return str + this.outro;\n};\n\nMagicString.prototype.isEmpty = function isEmpty() {\n var chunk = this.firstChunk;\n\n do {\n if (chunk.intro.length && chunk.intro.trim() || chunk.content.length && chunk.content.trim() || chunk.outro.length && chunk.outro.trim()) {\n return false;\n }\n } while (chunk = chunk.next);\n\n return true;\n};\n\nMagicString.prototype.length = function length() {\n var chunk = this.firstChunk;\n var length = 0;\n\n do {\n length += chunk.intro.length + chunk.content.length + chunk.outro.length;\n } while (chunk = chunk.next);\n\n return length;\n};\n\nMagicString.prototype.trimLines = function trimLines() {\n return this.trim('[\\\\r\\\\n]');\n};\n\nMagicString.prototype.trim = function trim(charType) {\n return this.trimStart(charType).trimEnd(charType);\n};\n\nMagicString.prototype.trimEndAborted = function trimEndAborted(charType) {\n var rx = new RegExp((charType || '\\\\s') + '+$');\n this.outro = this.outro.replace(rx, '');\n\n if (this.outro.length) {\n return true;\n }\n\n var chunk = this.lastChunk;\n\n do {\n var end = chunk.end;\n var aborted = chunk.trimEnd(rx); // if chunk was trimmed, we have a new lastChunk\n\n if (chunk.end !== end) {\n if (this.lastChunk === chunk) {\n this.lastChunk = chunk.next;\n }\n\n this.byEnd[chunk.end] = chunk;\n this.byStart[chunk.next.start] = chunk.next;\n this.byEnd[chunk.next.end] = chunk.next;\n }\n\n if (aborted) {\n return true;\n }\n\n chunk = chunk.previous;\n } while (chunk);\n\n return false;\n};\n\nMagicString.prototype.trimEnd = function trimEnd(charType) {\n this.trimEndAborted(charType);\n return this;\n};\n\nMagicString.prototype.trimStartAborted = function trimStartAborted(charType) {\n var rx = new RegExp('^' + (charType || '\\\\s') + '+');\n this.intro = this.intro.replace(rx, '');\n\n if (this.intro.length) {\n return true;\n }\n\n var chunk = this.firstChunk;\n\n do {\n var end = chunk.end;\n var aborted = chunk.trimStart(rx);\n\n if (chunk.end !== end) {\n // special case...\n if (chunk === this.lastChunk) {\n this.lastChunk = chunk.next;\n }\n\n this.byEnd[chunk.end] = chunk;\n this.byStart[chunk.next.start] = chunk.next;\n this.byEnd[chunk.next.end] = chunk.next;\n }\n\n if (aborted) {\n return true;\n }\n\n chunk = chunk.next;\n } while (chunk);\n\n return false;\n};\n\nMagicString.prototype.trimStart = function trimStart(charType) {\n this.trimStartAborted(charType);\n return this;\n};\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n\nvar Bundle = function Bundle(options) {\n if (options === void 0) options = {};\n this.intro = options.intro || '';\n this.separator = options.separator !== undefined ? options.separator : '\\n';\n this.sources = [];\n this.uniqueSources = [];\n this.uniqueSourceIndexByFilename = {};\n};\n\nBundle.prototype.addSource = function addSource(source) {\n if (source instanceof MagicString) {\n return this.addSource({\n content: source,\n filename: source.filename,\n separator: this.separator\n });\n }\n\n if (!isObject(source) || !source.content) {\n throw new Error('bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`');\n }\n\n ['filename', 'indentExclusionRanges', 'separator'].forEach(function (option) {\n if (!hasOwnProp.call(source, option)) {\n source[option] = source.content[option];\n }\n });\n\n if (source.separator === undefined) {\n // TODO there's a bunch of this sort of thing, needs cleaning up\n source.separator = this.separator;\n }\n\n if (source.filename) {\n if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n this.uniqueSources.push({\n filename: source.filename,\n content: source.content.original\n });\n } else {\n var uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\n if (source.content.original !== uniqueSource.content) {\n throw new Error(\"Illegal source: same filename (\" + source.filename + \"), different contents\");\n }\n }\n }\n\n this.sources.push(source);\n return this;\n};\n\nBundle.prototype.append = function append(str, options) {\n this.addSource({\n content: new MagicString(str),\n separator: options && options.separator || ''\n });\n return this;\n};\n\nBundle.prototype.clone = function clone() {\n var bundle = new Bundle({\n intro: this.intro,\n separator: this.separator\n });\n this.sources.forEach(function (source) {\n bundle.addSource({\n filename: source.filename,\n content: source.content.clone(),\n separator: source.separator\n });\n });\n return bundle;\n};\n\nBundle.prototype.generateDecodedMap = function generateDecodedMap(options) {\n var this$1$1 = this;\n if (options === void 0) options = {};\n var names = [];\n this.sources.forEach(function (source) {\n Object.keys(source.content.storedNames).forEach(function (name) {\n if (!~names.indexOf(name)) {\n names.push(name);\n }\n });\n });\n var mappings = new Mappings(options.hires);\n\n if (this.intro) {\n mappings.advance(this.intro);\n }\n\n this.sources.forEach(function (source, i) {\n if (i > 0) {\n mappings.advance(this$1$1.separator);\n }\n\n var sourceIndex = source.filename ? this$1$1.uniqueSourceIndexByFilename[source.filename] : -1;\n var magicString = source.content;\n var locate = getLocator(magicString.original);\n\n if (magicString.intro) {\n mappings.advance(magicString.intro);\n }\n\n magicString.firstChunk.eachNext(function (chunk) {\n var loc = locate(chunk.start);\n\n if (chunk.intro.length) {\n mappings.advance(chunk.intro);\n }\n\n if (source.filename) {\n if (chunk.edited) {\n mappings.addEdit(sourceIndex, chunk.content, loc, chunk.storeName ? names.indexOf(chunk.original) : -1);\n } else {\n mappings.addUneditedChunk(sourceIndex, chunk, magicString.original, loc, magicString.sourcemapLocations);\n }\n } else {\n mappings.advance(chunk.content);\n }\n\n if (chunk.outro.length) {\n mappings.advance(chunk.outro);\n }\n });\n\n if (magicString.outro) {\n mappings.advance(magicString.outro);\n }\n });\n return {\n file: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n sources: this.uniqueSources.map(function (source) {\n return options.file ? getRelativePath(options.file, source.filename) : source.filename;\n }),\n sourcesContent: this.uniqueSources.map(function (source) {\n return options.includeContent ? source.content : null;\n }),\n names: names,\n mappings: mappings.raw\n };\n};\n\nBundle.prototype.generateMap = function generateMap(options) {\n return new SourceMap(this.generateDecodedMap(options));\n};\n\nBundle.prototype.getIndentString = function getIndentString() {\n var indentStringCounts = {};\n this.sources.forEach(function (source) {\n var indentStr = source.content.indentStr;\n\n if (indentStr === null) {\n return;\n }\n\n if (!indentStringCounts[indentStr]) {\n indentStringCounts[indentStr] = 0;\n }\n\n indentStringCounts[indentStr] += 1;\n });\n return Object.keys(indentStringCounts).sort(function (a, b) {\n return indentStringCounts[a] - indentStringCounts[b];\n })[0] || '\\t';\n};\n\nBundle.prototype.indent = function indent(indentStr) {\n var this$1$1 = this;\n\n if (!arguments.length) {\n indentStr = this.getIndentString();\n }\n\n if (indentStr === '') {\n return this;\n } // noop\n\n\n var trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n this.sources.forEach(function (source, i) {\n var separator = source.separator !== undefined ? source.separator : this$1$1.separator;\n var indentStart = trailingNewline || i > 0 && /\\r?\\n$/.test(separator);\n source.content.indent(indentStr, {\n exclude: source.indentExclusionRanges,\n indentStart: indentStart //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\n });\n trailingNewline = source.content.lastChar() === '\\n';\n });\n\n if (this.intro) {\n this.intro = indentStr + this.intro.replace(/^[^\\n]/gm, function (match, index) {\n return index > 0 ? indentStr + match : match;\n });\n }\n\n return this;\n};\n\nBundle.prototype.prepend = function prepend(str) {\n this.intro = str + this.intro;\n return this;\n};\n\nBundle.prototype.toString = function toString() {\n var this$1$1 = this;\n var body = this.sources.map(function (source, i) {\n var separator = source.separator !== undefined ? source.separator : this$1$1.separator;\n var str = (i > 0 ? separator : '') + source.content.toString();\n return str;\n }).join('');\n return this.intro + body;\n};\n\nBundle.prototype.isEmpty = function isEmpty() {\n if (this.intro.length && this.intro.trim()) {\n return false;\n }\n\n if (this.sources.some(function (source) {\n return !source.content.isEmpty();\n })) {\n return false;\n }\n\n return true;\n};\n\nBundle.prototype.length = function length() {\n return this.sources.reduce(function (length, source) {\n return length + source.content.length();\n }, this.intro.length);\n};\n\nBundle.prototype.trimLines = function trimLines() {\n return this.trim('[\\\\r\\\\n]');\n};\n\nBundle.prototype.trim = function trim(charType) {\n return this.trimStart(charType).trimEnd(charType);\n};\n\nBundle.prototype.trimStart = function trimStart(charType) {\n var rx = new RegExp('^' + (charType || '\\\\s') + '+');\n this.intro = this.intro.replace(rx, '');\n\n if (!this.intro) {\n var source;\n var i = 0;\n\n do {\n source = this.sources[i++];\n\n if (!source) {\n break;\n }\n } while (!source.content.trimStartAborted(charType));\n }\n\n return this;\n};\n\nBundle.prototype.trimEnd = function trimEnd(charType) {\n var rx = new RegExp((charType || '\\\\s') + '+$');\n var source;\n var i = this.sources.length - 1;\n\n do {\n source = this.sources[i--];\n\n if (!source) {\n this.intro = this.intro.replace(rx, '');\n break;\n }\n } while (!source.content.trimEndAborted(charType));\n\n return this;\n};\n\nexport { Bundle, SourceMap, MagicString as default };","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n\n it = a.entries();\n\n while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","export var IconsManifest = [{\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n}, {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n}, {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n}, {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n}, {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n}, {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n}, {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n}, {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}];","import React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar React = __importStar(require(\"react\"));\n\nvar KEYCODE_ENTER = 13;\nvar KEYCODE_TAB = 9;\nvar KEYCODE_BACKSPACE = 8;\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar KEYCODE_ESCAPE = 27;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' && 'navigator' in window && /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' && 'navigator' in window && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar className = 'npm__react-simple-code-editor__textarea';\nvar cssText =\n/* CSS */\n\"\\n/**\\n * Reset the text fill color so that placeholder is visible\\n */\\n.\".concat(className, \":empty {\\n -webkit-text-fill-color: inherit !important;\\n}\\n\\n/**\\n * Hack to apply on some CSS on IE10 and IE11\\n */\\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n /**\\n * IE doesn't support '-webkit-text-fill-color'\\n * So we use 'color: transparent' to make the text transparent on IE\\n * Unlike other browsers, it doesn't affect caret color in IE\\n */\\n .\").concat(className, \" {\\n color: transparent !important;\\n }\\n\\n .\").concat(className, \"::selection {\\n background-color: #accef7 !important;\\n color: transparent !important;\\n }\\n}\\n\");\n\nvar Editor =\n/** @class */\nfunction (_super) {\n __extends(Editor, _super);\n\n function Editor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n capture: true\n };\n\n _this._recordCurrentState = function () {\n var input = _this._input;\n if (!input) return; // Save current state of the input\n\n var value = input.value,\n selectionStart = input.selectionStart,\n selectionEnd = input.selectionEnd;\n\n _this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n });\n };\n\n _this._getLines = function (text, position) {\n return text.substring(0, position).split('\\n');\n };\n\n _this._recordChange = function (record, overwrite) {\n var _a, _b, _c;\n\n if (overwrite === void 0) {\n overwrite = false;\n }\n\n var _d = _this._history,\n stack = _d.stack,\n offset = _d.offset;\n\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n _this._history.stack = stack.slice(0, offset + 1); // Limit the number of operations to 100\n\n var count = _this._history.stack.length;\n\n if (count > HISTORY_LIMIT) {\n var extras = count - HISTORY_LIMIT;\n _this._history.stack = stack.slice(extras, count);\n _this._history.offset = Math.max(_this._history.offset - extras, 0);\n }\n }\n\n var timestamp = Date.now();\n\n if (overwrite) {\n var last = _this._history.stack[_this._history.offset];\n\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n // Match the last word in the line\n var re = /[^a-z0-9]([a-z0-9]+)$/i; // Get the previous line\n\n var previous = (_a = _this._getLines(last.value, last.selectionStart).pop()) === null || _a === void 0 ? void 0 : _a.match(re); // Get the current line\n\n var current = (_b = _this._getLines(record.value, record.selectionStart).pop()) === null || _b === void 0 ? void 0 : _b.match(re);\n\n if ((previous === null || previous === void 0 ? void 0 : previous[1]) && ((_c = current === null || current === void 0 ? void 0 : current[1]) === null || _c === void 0 ? void 0 : _c.startsWith(previous[1]))) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n _this._history.stack[_this._history.offset] = __assign(__assign({}, record), {\n timestamp: timestamp\n });\n return;\n }\n }\n } // Add the new operation to the stack\n\n\n _this._history.stack.push(__assign(__assign({}, record), {\n timestamp: timestamp\n }));\n\n _this._history.offset++;\n };\n\n _this._updateInput = function (record) {\n var input = _this._input;\n if (!input) return; // Update values and selection state\n\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n\n _this.props.onValueChange(record.value);\n };\n\n _this._applyEdits = function (record) {\n // Save last selection state\n var input = _this._input;\n var last = _this._history.stack[_this._history.offset];\n\n if (last && input) {\n _this._history.stack[_this._history.offset] = __assign(__assign({}, last), {\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd\n });\n } // Save the changes\n\n\n _this._recordChange(record);\n\n _this._updateInput(record);\n };\n\n _this._undoEdit = function () {\n var _a = _this._history,\n stack = _a.stack,\n offset = _a.offset; // Get the previous edit\n\n var record = stack[offset - 1];\n\n if (record) {\n // Apply the changes and update the offset\n _this._updateInput(record);\n\n _this._history.offset = Math.max(offset - 1, 0);\n }\n };\n\n _this._redoEdit = function () {\n var _a = _this._history,\n stack = _a.stack,\n offset = _a.offset; // Get the next edit\n\n var record = stack[offset + 1];\n\n if (record) {\n // Apply the changes and update the offset\n _this._updateInput(record);\n\n _this._history.offset = Math.min(offset + 1, stack.length - 1);\n }\n };\n\n _this._handleKeyDown = function (e) {\n var _a = _this.props,\n tabSize = _a.tabSize,\n insertSpaces = _a.insertSpaces,\n ignoreTabKey = _a.ignoreTabKey,\n onKeyDown = _a.onKeyDown;\n\n if (onKeyDown) {\n onKeyDown(e);\n\n if (e.defaultPrevented) {\n return;\n }\n }\n\n if (e.keyCode === KEYCODE_ESCAPE) {\n e.currentTarget.blur();\n }\n\n var _b = e.currentTarget,\n value = _b.value,\n selectionStart = _b.selectionStart,\n selectionEnd = _b.selectionEnd;\n var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n\n if (e.keyCode === KEYCODE_TAB && !ignoreTabKey && _this.state.capture) {\n // Prevent focus change\n e.preventDefault();\n\n if (e.shiftKey) {\n // Unindent selected lines\n var linesBeforeCaret = _this._getLines(value, selectionStart);\n\n var startLine_1 = linesBeforeCaret.length - 1;\n var endLine_1 = _this._getLines(value, selectionEnd).length - 1;\n var nextValue = value.split('\\n').map(function (line, i) {\n if (i >= startLine_1 && i <= endLine_1 && line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n\n return line;\n }).join('\\n');\n\n if (value !== nextValue) {\n var startLineText = linesBeforeCaret[startLine_1];\n\n _this._applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: (startLineText === null || startLineText === void 0 ? void 0 : startLineText.startsWith(tabCharacter)) ? selectionStart - tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length)\n });\n }\n } else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n var linesBeforeCaret = _this._getLines(value, selectionStart);\n\n var startLine_2 = linesBeforeCaret.length - 1;\n var endLine_2 = _this._getLines(value, selectionEnd).length - 1;\n var startLineText = linesBeforeCaret[startLine_2];\n\n _this._applyEdits({\n value: value.split('\\n').map(function (line, i) {\n if (i >= startLine_2 && i <= endLine_2) {\n return tabCharacter + line;\n }\n\n return line;\n }).join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: startLineText && /\\S/.test(startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine_2 - startLine_2 + 1)\n });\n } else {\n var updatedSelection = selectionStart + tabCharacter.length;\n\n _this._applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_BACKSPACE) {\n var hasSelection = selectionStart !== selectionEnd;\n var textBeforeCaret = value.substring(0, selectionStart);\n\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n var updatedSelection = selectionStart - tabCharacter.length;\n\n _this._applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_ENTER) {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n var line = _this._getLines(value, selectionStart).pop();\n\n var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n\n if (matches === null || matches === void 0 ? void 0 : matches[0]) {\n e.preventDefault(); // Preserve indentation on inserting a new line\n\n var indent = '\\n' + matches[0];\n var updatedSelection = selectionStart + indent.length;\n\n _this._applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n }\n } else if (e.keyCode === KEYCODE_PARENS || e.keyCode === KEYCODE_BRACKETS || e.keyCode === KEYCODE_QUOTE || e.keyCode === KEYCODE_BACK_QUOTE) {\n var chars = void 0;\n\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n } else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n } else {\n chars = ['[', ']'];\n }\n } else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n } else {\n chars = [\"'\", \"'\"];\n }\n } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n } // If text is selected, wrap them in the characters\n\n\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n\n _this._applyEdits({\n value: value.substring(0, selectionStart) + chars[0] + value.substring(selectionStart, selectionEnd) + chars[1] + value.substring(selectionEnd),\n // Update caret position\n selectionStart: selectionStart,\n selectionEnd: selectionEnd + 2\n });\n }\n } else if ((isMacLike ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) && !e.shiftKey && !e.altKey) {\n e.preventDefault();\n\n _this._undoEdit();\n } else if ((isMacLike ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey : isWindows ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) && !e.altKey) {\n e.preventDefault();\n\n _this._redoEdit();\n } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n e.preventDefault(); // Toggle capturing tab key so users can focus away\n\n _this.setState(function (state) {\n return {\n capture: !state.capture\n };\n });\n }\n };\n\n _this._handleChange = function (e) {\n var _a = e.currentTarget,\n value = _a.value,\n selectionStart = _a.selectionStart,\n selectionEnd = _a.selectionEnd;\n\n _this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n }, true);\n\n _this.props.onValueChange(value);\n };\n\n _this._history = {\n stack: [],\n offset: -1\n };\n _this._input = null;\n return _this;\n }\n\n Editor.prototype.componentDidMount = function () {\n this._recordCurrentState();\n };\n\n Object.defineProperty(Editor.prototype, \"session\", {\n get: function () {\n return {\n history: this._history\n };\n },\n set: function (session) {\n this._history = session.history;\n },\n enumerable: false,\n configurable: true\n });\n\n Editor.prototype.render = function () {\n var _this = this;\n\n var _a = this.props,\n value = _a.value,\n style = _a.style,\n padding = _a.padding,\n highlight = _a.highlight,\n textareaId = _a.textareaId,\n textareaClassName = _a.textareaClassName,\n autoFocus = _a.autoFocus,\n disabled = _a.disabled,\n form = _a.form,\n maxLength = _a.maxLength,\n minLength = _a.minLength,\n name = _a.name,\n placeholder = _a.placeholder,\n readOnly = _a.readOnly,\n required = _a.required,\n onClick = _a.onClick,\n onFocus = _a.onFocus,\n onBlur = _a.onBlur,\n onKeyUp = _a.onKeyUp,\n\n /* eslint-disable @typescript-eslint/no-unused-vars */\n onKeyDown = _a.onKeyDown,\n onValueChange = _a.onValueChange,\n tabSize = _a.tabSize,\n insertSpaces = _a.insertSpaces,\n ignoreTabKey = _a.ignoreTabKey,\n\n /* eslint-enable @typescript-eslint/no-unused-vars */\n preClassName = _a.preClassName,\n rest = __rest(_a, [\"value\", \"style\", \"padding\", \"highlight\", \"textareaId\", \"textareaClassName\", \"autoFocus\", \"disabled\", \"form\", \"maxLength\", \"minLength\", \"name\", \"placeholder\", \"readOnly\", \"required\", \"onClick\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onValueChange\", \"tabSize\", \"insertSpaces\", \"ignoreTabKey\", \"preClassName\"]);\n\n var contentStyle = {\n paddingTop: padding,\n paddingRight: padding,\n paddingBottom: padding,\n paddingLeft: padding\n };\n var highlighted = highlight(value);\n return React.createElement(\"div\", __assign({}, rest, {\n style: __assign(__assign({}, styles.container), style)\n }), React.createElement(\"textarea\", {\n ref: function (c) {\n return _this._input = c;\n },\n style: __assign(__assign(__assign({}, styles.editor), styles.textarea), contentStyle),\n className: className + (textareaClassName ? \" \".concat(textareaClassName) : ''),\n id: textareaId,\n value: value,\n onChange: this._handleChange,\n onKeyDown: this._handleKeyDown,\n onClick: onClick,\n onKeyUp: onKeyUp,\n onFocus: onFocus,\n onBlur: onBlur,\n disabled: disabled,\n form: form,\n maxLength: maxLength,\n minLength: minLength,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: required,\n autoFocus: autoFocus,\n autoCapitalize: \"off\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: false,\n \"data-gramm\": false\n }), React.createElement(\"pre\", __assign({\n className: preClassName,\n \"aria-hidden\": \"true\",\n style: __assign(__assign(__assign({}, styles.editor), styles.highlight), contentStyle)\n }, typeof highlighted === 'string' ? {\n dangerouslySetInnerHTML: {\n __html: highlighted + ' '\n }\n } : {\n children: highlighted\n })), React.createElement(\"style\", {\n type: \"text/css\",\n dangerouslySetInnerHTML: {\n __html: cssText\n }\n }));\n };\n\n Editor.defaultProps = {\n tabSize: 2,\n insertSpaces: true,\n ignoreTabKey: false,\n padding: 0\n };\n return Editor;\n}(React.Component);\n\nexports.default = Editor;\nvar styles = {\n container: {\n position: 'relative',\n textAlign: 'left',\n boxSizing: 'border-box',\n padding: 0,\n overflow: 'hidden'\n },\n textarea: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n resize: 'none',\n color: 'inherit',\n overflow: 'hidden',\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n WebkitTextFillColor: 'transparent'\n },\n highlight: {\n position: 'relative',\n pointerEvents: 'none'\n },\n editor: {\n margin: 0,\n border: 0,\n background: 'none',\n boxSizing: 'inherit',\n display: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontVariantLigatures: 'inherit',\n fontWeight: 'inherit',\n letterSpacing: 'inherit',\n lineHeight: 'inherit',\n tabSize: 'inherit',\n textIndent: 'inherit',\n textRendering: 'inherit',\n textTransform: 'inherit',\n whiteSpace: 'pre-wrap',\n wordBreak: 'keep-all',\n overflowWrap: 'break-word'\n }\n};","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\n\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\nexports.strings = ['\\xA9\\uFE0F', '\\xAE\\uFE0F', '\\u203C\\uFE0F', '\\u2049\\uFE0F', '\\u2122\\uFE0F', '\\u2139\\uFE0F', '\\u2194\\uFE0F', '\\u2195\\uFE0F', '\\u2196\\uFE0F', '\\u2197\\uFE0F', '\\u2198\\uFE0F', '\\u2199\\uFE0F', '\\u21A9\\uFE0F', '\\u21AA\\uFE0F', '\\u2328\\uFE0F', '\\u23CF\\uFE0F', '\\u23ED\\uFE0F', '\\u23EE\\uFE0F', '\\u23EF\\uFE0F', '\\u23F1\\uFE0F', '\\u23F2\\uFE0F', '\\u23F8\\uFE0F', '\\u23F9\\uFE0F', '\\u23FA\\uFE0F', '\\u24C2\\uFE0F', '\\u25AA\\uFE0F', '\\u25AB\\uFE0F', '\\u25B6\\uFE0F', '\\u25C0\\uFE0F', '\\u25FB\\uFE0F', '\\u25FC\\uFE0F', '\\u2600\\uFE0F', '\\u2601\\uFE0F', '\\u2602\\uFE0F', '\\u2603\\uFE0F', '\\u2604\\uFE0F', '\\u260E\\uFE0F', '\\u2611\\uFE0F', '\\u2618\\uFE0F', '\\u261D\\uFE0F', '\\u2620\\uFE0F', '\\u2622\\uFE0F', '\\u2623\\uFE0F', '\\u2626\\uFE0F', '\\u262A\\uFE0F', '\\u262E\\uFE0F', '\\u262F\\uFE0F', '\\u2638\\uFE0F', '\\u2639\\uFE0F', '\\u263A\\uFE0F', '\\u2640\\uFE0F', '\\u2642\\uFE0F', '\\u265F\\uFE0F', '\\u2660\\uFE0F', '\\u2663\\uFE0F', '\\u2665\\uFE0F', '\\u2666\\uFE0F', '\\u2668\\uFE0F', '\\u267B\\uFE0F', '\\u267E\\uFE0F', '\\u2692\\uFE0F', '\\u2694\\uFE0F', '\\u2695\\uFE0F', '\\u2696\\uFE0F', '\\u2697\\uFE0F', '\\u2699\\uFE0F', '\\u269B\\uFE0F', '\\u269C\\uFE0F', '\\u26A0\\uFE0F', '\\u26A7\\uFE0F', '\\u26B0\\uFE0F', '\\u26B1\\uFE0F', '\\u26C8\\uFE0F', '\\u26CF\\uFE0F', '\\u26D1\\uFE0F', '\\u26D3\\uFE0F', '\\u26E9\\uFE0F', '\\u26F0\\uFE0F', '\\u26F1\\uFE0F', '\\u26F4\\uFE0F', '\\u26F7\\uFE0F', '\\u26F8\\uFE0F', '\\u26F9\\uFE0F', '\\u2702\\uFE0F', '\\u2708\\uFE0F', '\\u2709\\uFE0F', '\\u270C\\uFE0F', '\\u270D\\uFE0F', '\\u270F\\uFE0F', '\\u2712\\uFE0F', '\\u2714\\uFE0F', '\\u2716\\uFE0F', '\\u271D\\uFE0F', '\\u2721\\uFE0F', '\\u2733\\uFE0F', '\\u2734\\uFE0F', '\\u2744\\uFE0F', '\\u2747\\uFE0F', '\\u2763\\uFE0F', '\\u2764\\uFE0F', '\\u27A1\\uFE0F', '\\u2934\\uFE0F', '\\u2935\\uFE0F', '\\u2B05\\uFE0F', '\\u2B06\\uFE0F', '\\u2B07\\uFE0F', '\\u3030\\uFE0F', '\\u303D\\uFE0F', '\\u3297\\uFE0F', '\\u3299\\uFE0F', '\\u{1F170}\\uFE0F', '\\u{1F171}\\uFE0F', '\\u{1F17E}\\uFE0F', '\\u{1F17F}\\uFE0F', '\\u{1F202}\\uFE0F', '\\u{1F237}\\uFE0F', '\\u{1F321}\\uFE0F', '\\u{1F324}\\uFE0F', '\\u{1F325}\\uFE0F', '\\u{1F326}\\uFE0F', '\\u{1F327}\\uFE0F', '\\u{1F328}\\uFE0F', '\\u{1F329}\\uFE0F', '\\u{1F32A}\\uFE0F', '\\u{1F32B}\\uFE0F', '\\u{1F32C}\\uFE0F', '\\u{1F336}\\uFE0F', '\\u{1F37D}\\uFE0F', '\\u{1F396}\\uFE0F', '\\u{1F397}\\uFE0F', '\\u{1F399}\\uFE0F', '\\u{1F39A}\\uFE0F', '\\u{1F39B}\\uFE0F', '\\u{1F39E}\\uFE0F', '\\u{1F39F}\\uFE0F', '\\u{1F3CB}\\uFE0F', '\\u{1F3CC}\\uFE0F', '\\u{1F3CD}\\uFE0F', '\\u{1F3CE}\\uFE0F', '\\u{1F3D4}\\uFE0F', '\\u{1F3D5}\\uFE0F', '\\u{1F3D6}\\uFE0F', '\\u{1F3D7}\\uFE0F', '\\u{1F3D8}\\uFE0F', '\\u{1F3D9}\\uFE0F', '\\u{1F3DA}\\uFE0F', '\\u{1F3DB}\\uFE0F', '\\u{1F3DC}\\uFE0F', '\\u{1F3DD}\\uFE0F', '\\u{1F3DE}\\uFE0F', '\\u{1F3DF}\\uFE0F', '\\u{1F3F3}\\uFE0F', '\\u{1F3F5}\\uFE0F', '\\u{1F3F7}\\uFE0F', '\\u{1F43F}\\uFE0F', '\\u{1F441}\\uFE0F', '\\u{1F4FD}\\uFE0F', '\\u{1F549}\\uFE0F', '\\u{1F54A}\\uFE0F', '\\u{1F56F}\\uFE0F', '\\u{1F570}\\uFE0F', '\\u{1F573}\\uFE0F', '\\u{1F574}\\uFE0F', '\\u{1F575}\\uFE0F', '\\u{1F576}\\uFE0F', '\\u{1F577}\\uFE0F', '\\u{1F578}\\uFE0F', '\\u{1F579}\\uFE0F', '\\u{1F587}\\uFE0F', '\\u{1F58A}\\uFE0F', '\\u{1F58B}\\uFE0F', '\\u{1F58C}\\uFE0F', '\\u{1F58D}\\uFE0F', '\\u{1F590}\\uFE0F', '\\u{1F5A5}\\uFE0F', '\\u{1F5A8}\\uFE0F', '\\u{1F5B1}\\uFE0F', '\\u{1F5B2}\\uFE0F', '\\u{1F5BC}\\uFE0F', '\\u{1F5C2}\\uFE0F', '\\u{1F5C3}\\uFE0F', '\\u{1F5C4}\\uFE0F', '\\u{1F5D1}\\uFE0F', '\\u{1F5D2}\\uFE0F', '\\u{1F5D3}\\uFE0F', '\\u{1F5DC}\\uFE0F', '\\u{1F5DD}\\uFE0F', '\\u{1F5DE}\\uFE0F', '\\u{1F5E1}\\uFE0F', '\\u{1F5E3}\\uFE0F', '\\u{1F5E8}\\uFE0F', '\\u{1F5EF}\\uFE0F', '\\u{1F5F3}\\uFE0F', '\\u{1F5FA}\\uFE0F', '\\u{1F6CB}\\uFE0F', '\\u{1F6CD}\\uFE0F', '\\u{1F6CE}\\uFE0F', '\\u{1F6CF}\\uFE0F', '\\u{1F6E0}\\uFE0F', '\\u{1F6E1}\\uFE0F', '\\u{1F6E2}\\uFE0F', '\\u{1F6E3}\\uFE0F', '\\u{1F6E4}\\uFE0F', '\\u{1F6E5}\\uFE0F', '\\u{1F6E9}\\uFE0F', '\\u{1F6F0}\\uFE0F', '\\u{1F6F3}\\uFE0F'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['#\\uFE0F\\u20E3', '*\\uFE0F\\u20E3', '0\\uFE0F\\u20E3', '1\\uFE0F\\u20E3', '2\\uFE0F\\u20E3', '3\\uFE0F\\u20E3', '4\\uFE0F\\u20E3', '5\\uFE0F\\u20E3', '6\\uFE0F\\u20E3', '7\\uFE0F\\u20E3', '8\\uFE0F\\u20E3', '9\\uFE0F\\u20E3'];","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\n\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\nexports.strings = ['#\\uFE0F\\u20E3', '*\\uFE0F\\u20E3', '0\\uFE0F\\u20E3', '1\\uFE0F\\u20E3', '2\\uFE0F\\u20E3', '3\\uFE0F\\u20E3', '4\\uFE0F\\u20E3', '5\\uFE0F\\u20E3', '6\\uFE0F\\u20E3', '7\\uFE0F\\u20E3', '8\\uFE0F\\u20E3', '9\\uFE0F\\u20E3', '\\xA9\\uFE0F', '\\xAE\\uFE0F', '\\u203C\\uFE0F', '\\u2049\\uFE0F', '\\u2122\\uFE0F', '\\u2139\\uFE0F', '\\u2194\\uFE0F', '\\u2195\\uFE0F', '\\u2196\\uFE0F', '\\u2197\\uFE0F', '\\u2198\\uFE0F', '\\u2199\\uFE0F', '\\u21A9\\uFE0F', '\\u21AA\\uFE0F', '\\u2328\\uFE0F', '\\u23CF\\uFE0F', '\\u23ED\\uFE0F', '\\u23EE\\uFE0F', '\\u23EF\\uFE0F', '\\u23F1\\uFE0F', '\\u23F2\\uFE0F', '\\u23F8\\uFE0F', '\\u23F9\\uFE0F', '\\u23FA\\uFE0F', '\\u24C2\\uFE0F', '\\u25AA\\uFE0F', '\\u25AB\\uFE0F', '\\u25B6\\uFE0F', '\\u25C0\\uFE0F', '\\u25FB\\uFE0F', '\\u25FC\\uFE0F', '\\u2600\\uFE0F', '\\u2601\\uFE0F', '\\u2602\\uFE0F', '\\u2603\\uFE0F', '\\u2604\\uFE0F', '\\u260E\\uFE0F', '\\u2611\\uFE0F', '\\u2618\\uFE0F', '\\u261D\\u{1F3FB}', '\\u261D\\u{1F3FC}', '\\u261D\\u{1F3FD}', '\\u261D\\u{1F3FE}', '\\u261D\\u{1F3FF}', '\\u261D\\uFE0F', '\\u2620\\uFE0F', '\\u2622\\uFE0F', '\\u2623\\uFE0F', '\\u2626\\uFE0F', '\\u262A\\uFE0F', '\\u262E\\uFE0F', '\\u262F\\uFE0F', '\\u2638\\uFE0F', '\\u2639\\uFE0F', '\\u263A\\uFE0F', '\\u2640\\uFE0F', '\\u2642\\uFE0F', '\\u265F\\uFE0F', '\\u2660\\uFE0F', '\\u2663\\uFE0F', '\\u2665\\uFE0F', '\\u2666\\uFE0F', '\\u2668\\uFE0F', '\\u267B\\uFE0F', '\\u267E\\uFE0F', '\\u2692\\uFE0F', '\\u2694\\uFE0F', '\\u2695\\uFE0F', '\\u2696\\uFE0F', '\\u2697\\uFE0F', '\\u2699\\uFE0F', '\\u269B\\uFE0F', '\\u269C\\uFE0F', '\\u26A0\\uFE0F', '\\u26A7\\uFE0F', '\\u26B0\\uFE0F', '\\u26B1\\uFE0F', '\\u26C8\\uFE0F', '\\u26CF\\uFE0F', '\\u26D1\\uFE0F', '\\u26D3\\uFE0F', '\\u26E9\\uFE0F', '\\u26F0\\uFE0F', '\\u26F1\\uFE0F', '\\u26F4\\uFE0F', '\\u26F7\\uFE0F', '\\u26F8\\uFE0F', '\\u26F9\\u{1F3FB}', '\\u26F9\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FC}', '\\u26F9\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FD}', '\\u26F9\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FE}', '\\u26F9\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FF}', '\\u26F9\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u26F9\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2640\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2642\\uFE0F', '\\u2702\\uFE0F', '\\u2708\\uFE0F', '\\u2709\\uFE0F', '\\u270A\\u{1F3FB}', '\\u270A\\u{1F3FC}', '\\u270A\\u{1F3FD}', '\\u270A\\u{1F3FE}', '\\u270A\\u{1F3FF}', '\\u270B\\u{1F3FB}', '\\u270B\\u{1F3FC}', '\\u270B\\u{1F3FD}', '\\u270B\\u{1F3FE}', '\\u270B\\u{1F3FF}', '\\u270C\\u{1F3FB}', '\\u270C\\u{1F3FC}', '\\u270C\\u{1F3FD}', '\\u270C\\u{1F3FE}', '\\u270C\\u{1F3FF}', '\\u270C\\uFE0F', '\\u270D\\u{1F3FB}', '\\u270D\\u{1F3FC}', '\\u270D\\u{1F3FD}', '\\u270D\\u{1F3FE}', '\\u270D\\u{1F3FF}', '\\u270D\\uFE0F', '\\u270F\\uFE0F', '\\u2712\\uFE0F', '\\u2714\\uFE0F', '\\u2716\\uFE0F', '\\u271D\\uFE0F', '\\u2721\\uFE0F', '\\u2733\\uFE0F', '\\u2734\\uFE0F', '\\u2744\\uFE0F', '\\u2747\\uFE0F', '\\u2763\\uFE0F', '\\u2764\\uFE0F', '\\u2764\\uFE0F\\u200D\\u{1F525}', '\\u2764\\uFE0F\\u200D\\u{1FA79}', '\\u27A1\\uFE0F', '\\u2934\\uFE0F', '\\u2935\\uFE0F', '\\u2B05\\uFE0F', '\\u2B06\\uFE0F', '\\u2B07\\uFE0F', '\\u3030\\uFE0F', '\\u303D\\uFE0F', '\\u3297\\uFE0F', '\\u3299\\uFE0F', '\\u{1F170}\\uFE0F', '\\u{1F171}\\uFE0F', '\\u{1F17E}\\uFE0F', '\\u{1F17F}\\uFE0F', '\\u{1F1E6}\\u{1F1E8}', '\\u{1F1E6}\\u{1F1E9}', '\\u{1F1E6}\\u{1F1EA}', '\\u{1F1E6}\\u{1F1EB}', '\\u{1F1E6}\\u{1F1EC}', '\\u{1F1E6}\\u{1F1EE}', '\\u{1F1E6}\\u{1F1F1}', '\\u{1F1E6}\\u{1F1F2}', '\\u{1F1E6}\\u{1F1F4}', '\\u{1F1E6}\\u{1F1F6}', '\\u{1F1E6}\\u{1F1F7}', '\\u{1F1E6}\\u{1F1F8}', '\\u{1F1E6}\\u{1F1F9}', '\\u{1F1E6}\\u{1F1FA}', '\\u{1F1E6}\\u{1F1FC}', '\\u{1F1E6}\\u{1F1FD}', '\\u{1F1E6}\\u{1F1FF}', '\\u{1F1E7}\\u{1F1E6}', '\\u{1F1E7}\\u{1F1E7}', '\\u{1F1E7}\\u{1F1E9}', '\\u{1F1E7}\\u{1F1EA}', '\\u{1F1E7}\\u{1F1EB}', '\\u{1F1E7}\\u{1F1EC}', '\\u{1F1E7}\\u{1F1ED}', '\\u{1F1E7}\\u{1F1EE}', '\\u{1F1E7}\\u{1F1EF}', '\\u{1F1E7}\\u{1F1F1}', '\\u{1F1E7}\\u{1F1F2}', '\\u{1F1E7}\\u{1F1F3}', '\\u{1F1E7}\\u{1F1F4}', '\\u{1F1E7}\\u{1F1F6}', '\\u{1F1E7}\\u{1F1F7}', '\\u{1F1E7}\\u{1F1F8}', '\\u{1F1E7}\\u{1F1F9}', '\\u{1F1E7}\\u{1F1FB}', '\\u{1F1E7}\\u{1F1FC}', '\\u{1F1E7}\\u{1F1FE}', '\\u{1F1E7}\\u{1F1FF}', '\\u{1F1E8}\\u{1F1E6}', '\\u{1F1E8}\\u{1F1E8}', '\\u{1F1E8}\\u{1F1E9}', '\\u{1F1E8}\\u{1F1EB}', '\\u{1F1E8}\\u{1F1EC}', '\\u{1F1E8}\\u{1F1ED}', '\\u{1F1E8}\\u{1F1EE}', '\\u{1F1E8}\\u{1F1F0}', '\\u{1F1E8}\\u{1F1F1}', '\\u{1F1E8}\\u{1F1F2}', '\\u{1F1E8}\\u{1F1F3}', '\\u{1F1E8}\\u{1F1F4}', '\\u{1F1E8}\\u{1F1F5}', '\\u{1F1E8}\\u{1F1F7}', '\\u{1F1E8}\\u{1F1FA}', '\\u{1F1E8}\\u{1F1FB}', '\\u{1F1E8}\\u{1F1FC}', '\\u{1F1E8}\\u{1F1FD}', '\\u{1F1E8}\\u{1F1FE}', '\\u{1F1E8}\\u{1F1FF}', '\\u{1F1E9}\\u{1F1EA}', '\\u{1F1E9}\\u{1F1EC}', '\\u{1F1E9}\\u{1F1EF}', '\\u{1F1E9}\\u{1F1F0}', '\\u{1F1E9}\\u{1F1F2}', '\\u{1F1E9}\\u{1F1F4}', '\\u{1F1E9}\\u{1F1FF}', '\\u{1F1EA}\\u{1F1E6}', '\\u{1F1EA}\\u{1F1E8}', '\\u{1F1EA}\\u{1F1EA}', '\\u{1F1EA}\\u{1F1EC}', '\\u{1F1EA}\\u{1F1ED}', '\\u{1F1EA}\\u{1F1F7}', '\\u{1F1EA}\\u{1F1F8}', '\\u{1F1EA}\\u{1F1F9}', '\\u{1F1EA}\\u{1F1FA}', '\\u{1F1EB}\\u{1F1EE}', '\\u{1F1EB}\\u{1F1EF}', '\\u{1F1EB}\\u{1F1F0}', '\\u{1F1EB}\\u{1F1F2}', '\\u{1F1EB}\\u{1F1F4}', '\\u{1F1EB}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1E6}', '\\u{1F1EC}\\u{1F1E7}', '\\u{1F1EC}\\u{1F1E9}', '\\u{1F1EC}\\u{1F1EA}', '\\u{1F1EC}\\u{1F1EB}', '\\u{1F1EC}\\u{1F1EC}', '\\u{1F1EC}\\u{1F1ED}', '\\u{1F1EC}\\u{1F1EE}', '\\u{1F1EC}\\u{1F1F1}', '\\u{1F1EC}\\u{1F1F2}', '\\u{1F1EC}\\u{1F1F3}', '\\u{1F1EC}\\u{1F1F5}', '\\u{1F1EC}\\u{1F1F6}', '\\u{1F1EC}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1F8}', '\\u{1F1EC}\\u{1F1F9}', '\\u{1F1EC}\\u{1F1FA}', '\\u{1F1EC}\\u{1F1FC}', '\\u{1F1EC}\\u{1F1FE}', '\\u{1F1ED}\\u{1F1F0}', '\\u{1F1ED}\\u{1F1F2}', '\\u{1F1ED}\\u{1F1F3}', '\\u{1F1ED}\\u{1F1F7}', '\\u{1F1ED}\\u{1F1F9}', '\\u{1F1ED}\\u{1F1FA}', '\\u{1F1EE}\\u{1F1E8}', '\\u{1F1EE}\\u{1F1E9}', '\\u{1F1EE}\\u{1F1EA}', '\\u{1F1EE}\\u{1F1F1}', '\\u{1F1EE}\\u{1F1F2}', '\\u{1F1EE}\\u{1F1F3}', '\\u{1F1EE}\\u{1F1F4}', '\\u{1F1EE}\\u{1F1F6}', '\\u{1F1EE}\\u{1F1F7}', '\\u{1F1EE}\\u{1F1F8}', '\\u{1F1EE}\\u{1F1F9}', '\\u{1F1EF}\\u{1F1EA}', '\\u{1F1EF}\\u{1F1F2}', '\\u{1F1EF}\\u{1F1F4}', '\\u{1F1EF}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1EA}', '\\u{1F1F0}\\u{1F1EC}', '\\u{1F1F0}\\u{1F1ED}', '\\u{1F1F0}\\u{1F1EE}', '\\u{1F1F0}\\u{1F1F2}', '\\u{1F1F0}\\u{1F1F3}', '\\u{1F1F0}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1F7}', '\\u{1F1F0}\\u{1F1FC}', '\\u{1F1F0}\\u{1F1FE}', '\\u{1F1F0}\\u{1F1FF}', '\\u{1F1F1}\\u{1F1E6}', '\\u{1F1F1}\\u{1F1E7}', '\\u{1F1F1}\\u{1F1E8}', '\\u{1F1F1}\\u{1F1EE}', '\\u{1F1F1}\\u{1F1F0}', '\\u{1F1F1}\\u{1F1F7}', '\\u{1F1F1}\\u{1F1F8}', '\\u{1F1F1}\\u{1F1F9}', '\\u{1F1F1}\\u{1F1FA}', '\\u{1F1F1}\\u{1F1FB}', '\\u{1F1F1}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1E6}', '\\u{1F1F2}\\u{1F1E8}', '\\u{1F1F2}\\u{1F1E9}', '\\u{1F1F2}\\u{1F1EA}', '\\u{1F1F2}\\u{1F1EB}', '\\u{1F1F2}\\u{1F1EC}', '\\u{1F1F2}\\u{1F1ED}', '\\u{1F1F2}\\u{1F1F0}', '\\u{1F1F2}\\u{1F1F1}', '\\u{1F1F2}\\u{1F1F2}', '\\u{1F1F2}\\u{1F1F3}', '\\u{1F1F2}\\u{1F1F4}', '\\u{1F1F2}\\u{1F1F5}', '\\u{1F1F2}\\u{1F1F6}', '\\u{1F1F2}\\u{1F1F7}', '\\u{1F1F2}\\u{1F1F8}', '\\u{1F1F2}\\u{1F1F9}', '\\u{1F1F2}\\u{1F1FA}', '\\u{1F1F2}\\u{1F1FB}', '\\u{1F1F2}\\u{1F1FC}', '\\u{1F1F2}\\u{1F1FD}', '\\u{1F1F2}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1FF}', '\\u{1F1F3}\\u{1F1E6}', '\\u{1F1F3}\\u{1F1E8}', '\\u{1F1F3}\\u{1F1EA}', '\\u{1F1F3}\\u{1F1EB}', '\\u{1F1F3}\\u{1F1EC}', '\\u{1F1F3}\\u{1F1EE}', '\\u{1F1F3}\\u{1F1F1}', '\\u{1F1F3}\\u{1F1F4}', '\\u{1F1F3}\\u{1F1F5}', '\\u{1F1F3}\\u{1F1F7}', '\\u{1F1F3}\\u{1F1FA}', '\\u{1F1F3}\\u{1F1FF}', '\\u{1F1F4}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1E6}', '\\u{1F1F5}\\u{1F1EA}', '\\u{1F1F5}\\u{1F1EB}', '\\u{1F1F5}\\u{1F1EC}', '\\u{1F1F5}\\u{1F1ED}', '\\u{1F1F5}\\u{1F1F0}', '\\u{1F1F5}\\u{1F1F1}', '\\u{1F1F5}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1F3}', '\\u{1F1F5}\\u{1F1F7}', '\\u{1F1F5}\\u{1F1F8}', '\\u{1F1F5}\\u{1F1F9}', '\\u{1F1F5}\\u{1F1FC}', '\\u{1F1F5}\\u{1F1FE}', '\\u{1F1F6}\\u{1F1E6}', '\\u{1F1F7}\\u{1F1EA}', '\\u{1F1F7}\\u{1F1F4}', '\\u{1F1F7}\\u{1F1F8}', '\\u{1F1F7}\\u{1F1FA}', '\\u{1F1F7}\\u{1F1FC}', '\\u{1F1F8}\\u{1F1E6}', '\\u{1F1F8}\\u{1F1E7}', '\\u{1F1F8}\\u{1F1E8}', '\\u{1F1F8}\\u{1F1E9}', '\\u{1F1F8}\\u{1F1EA}', '\\u{1F1F8}\\u{1F1EC}', '\\u{1F1F8}\\u{1F1ED}', '\\u{1F1F8}\\u{1F1EE}', '\\u{1F1F8}\\u{1F1EF}', '\\u{1F1F8}\\u{1F1F0}', '\\u{1F1F8}\\u{1F1F1}', '\\u{1F1F8}\\u{1F1F2}', '\\u{1F1F8}\\u{1F1F3}', '\\u{1F1F8}\\u{1F1F4}', '\\u{1F1F8}\\u{1F1F7}', '\\u{1F1F8}\\u{1F1F8}', '\\u{1F1F8}\\u{1F1F9}', '\\u{1F1F8}\\u{1F1FB}', '\\u{1F1F8}\\u{1F1FD}', '\\u{1F1F8}\\u{1F1FE}', '\\u{1F1F8}\\u{1F1FF}', '\\u{1F1F9}\\u{1F1E6}', '\\u{1F1F9}\\u{1F1E8}', '\\u{1F1F9}\\u{1F1E9}', '\\u{1F1F9}\\u{1F1EB}', '\\u{1F1F9}\\u{1F1EC}', '\\u{1F1F9}\\u{1F1ED}', '\\u{1F1F9}\\u{1F1EF}', '\\u{1F1F9}\\u{1F1F0}', '\\u{1F1F9}\\u{1F1F1}', '\\u{1F1F9}\\u{1F1F2}', '\\u{1F1F9}\\u{1F1F3}', '\\u{1F1F9}\\u{1F1F4}', '\\u{1F1F9}\\u{1F1F7}', '\\u{1F1F9}\\u{1F1F9}', '\\u{1F1F9}\\u{1F1FB}', '\\u{1F1F9}\\u{1F1FC}', '\\u{1F1F9}\\u{1F1FF}', '\\u{1F1FA}\\u{1F1E6}', '\\u{1F1FA}\\u{1F1EC}', '\\u{1F1FA}\\u{1F1F2}', '\\u{1F1FA}\\u{1F1F3}', '\\u{1F1FA}\\u{1F1F8}', '\\u{1F1FA}\\u{1F1FE}', '\\u{1F1FA}\\u{1F1FF}', '\\u{1F1FB}\\u{1F1E6}', '\\u{1F1FB}\\u{1F1E8}', '\\u{1F1FB}\\u{1F1EA}', '\\u{1F1FB}\\u{1F1EC}', '\\u{1F1FB}\\u{1F1EE}', '\\u{1F1FB}\\u{1F1F3}', '\\u{1F1FB}\\u{1F1FA}', '\\u{1F1FC}\\u{1F1EB}', '\\u{1F1FC}\\u{1F1F8}', '\\u{1F1FD}\\u{1F1F0}', '\\u{1F1FE}\\u{1F1EA}', '\\u{1F1FE}\\u{1F1F9}', '\\u{1F1FF}\\u{1F1E6}', '\\u{1F1FF}\\u{1F1F2}', '\\u{1F1FF}\\u{1F1FC}', '\\u{1F202}\\uFE0F', '\\u{1F237}\\uFE0F', '\\u{1F321}\\uFE0F', '\\u{1F324}\\uFE0F', '\\u{1F325}\\uFE0F', '\\u{1F326}\\uFE0F', '\\u{1F327}\\uFE0F', '\\u{1F328}\\uFE0F', '\\u{1F329}\\uFE0F', '\\u{1F32A}\\uFE0F', '\\u{1F32B}\\uFE0F', '\\u{1F32C}\\uFE0F', '\\u{1F336}\\uFE0F', '\\u{1F37D}\\uFE0F', '\\u{1F385}\\u{1F3FB}', '\\u{1F385}\\u{1F3FC}', '\\u{1F385}\\u{1F3FD}', '\\u{1F385}\\u{1F3FE}', '\\u{1F385}\\u{1F3FF}', '\\u{1F396}\\uFE0F', '\\u{1F397}\\uFE0F', '\\u{1F399}\\uFE0F', '\\u{1F39A}\\uFE0F', '\\u{1F39B}\\uFE0F', '\\u{1F39E}\\uFE0F', '\\u{1F39F}\\uFE0F', '\\u{1F3C2}\\u{1F3FB}', '\\u{1F3C2}\\u{1F3FC}', '\\u{1F3C2}\\u{1F3FD}', '\\u{1F3C2}\\u{1F3FE}', '\\u{1F3C2}\\u{1F3FF}', '\\u{1F3C3}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FB}', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FC}', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FD}', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FE}', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FF}', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FB}', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FC}', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FD}', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FE}', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FF}', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3C7}\\u{1F3FB}', '\\u{1F3C7}\\u{1F3FC}', '\\u{1F3C7}\\u{1F3FD}', '\\u{1F3C7}\\u{1F3FE}', '\\u{1F3C7}\\u{1F3FF}', '\\u{1F3CA}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FB}', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FC}', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FD}', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FE}', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FF}', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FB}', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FC}', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FD}', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FE}', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FF}', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FB}', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FC}', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FD}', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FE}', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FF}', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3CD}\\uFE0F', '\\u{1F3CE}\\uFE0F', '\\u{1F3D4}\\uFE0F', '\\u{1F3D5}\\uFE0F', '\\u{1F3D6}\\uFE0F', '\\u{1F3D7}\\uFE0F', '\\u{1F3D8}\\uFE0F', '\\u{1F3D9}\\uFE0F', '\\u{1F3DA}\\uFE0F', '\\u{1F3DB}\\uFE0F', '\\u{1F3DC}\\uFE0F', '\\u{1F3DD}\\uFE0F', '\\u{1F3DE}\\uFE0F', '\\u{1F3DF}\\uFE0F', '\\u{1F3F3}\\uFE0F', '\\u{1F3F3}\\uFE0F\\u200D\\u26A7\\uFE0F', '\\u{1F3F3}\\uFE0F\\u200D\\u{1F308}', '\\u{1F3F4}\\u200D\\u2620\\uFE0F', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0065}\\u{E006E}\\u{E0067}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0073}\\u{E0063}\\u{E0074}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0077}\\u{E006C}\\u{E0073}\\u{E007F}', '\\u{1F3F5}\\uFE0F', '\\u{1F3F7}\\uFE0F', '\\u{1F408}\\u200D\\u2B1B', '\\u{1F415}\\u200D\\u{1F9BA}', '\\u{1F426}\\u200D\\u2B1B', '\\u{1F43B}\\u200D\\u2744\\uFE0F', '\\u{1F43F}\\uFE0F', '\\u{1F441}\\uFE0F', '\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F', '\\u{1F442}\\u{1F3FB}', '\\u{1F442}\\u{1F3FC}', '\\u{1F442}\\u{1F3FD}', '\\u{1F442}\\u{1F3FE}', '\\u{1F442}\\u{1F3FF}', '\\u{1F443}\\u{1F3FB}', '\\u{1F443}\\u{1F3FC}', '\\u{1F443}\\u{1F3FD}', '\\u{1F443}\\u{1F3FE}', '\\u{1F443}\\u{1F3FF}', '\\u{1F446}\\u{1F3FB}', '\\u{1F446}\\u{1F3FC}', '\\u{1F446}\\u{1F3FD}', '\\u{1F446}\\u{1F3FE}', '\\u{1F446}\\u{1F3FF}', '\\u{1F447}\\u{1F3FB}', '\\u{1F447}\\u{1F3FC}', '\\u{1F447}\\u{1F3FD}', '\\u{1F447}\\u{1F3FE}', '\\u{1F447}\\u{1F3FF}', '\\u{1F448}\\u{1F3FB}', '\\u{1F448}\\u{1F3FC}', '\\u{1F448}\\u{1F3FD}', '\\u{1F448}\\u{1F3FE}', '\\u{1F448}\\u{1F3FF}', '\\u{1F449}\\u{1F3FB}', '\\u{1F449}\\u{1F3FC}', '\\u{1F449}\\u{1F3FD}', '\\u{1F449}\\u{1F3FE}', '\\u{1F449}\\u{1F3FF}', '\\u{1F44A}\\u{1F3FB}', '\\u{1F44A}\\u{1F3FC}', '\\u{1F44A}\\u{1F3FD}', '\\u{1F44A}\\u{1F3FE}', '\\u{1F44A}\\u{1F3FF}', '\\u{1F44B}\\u{1F3FB}', '\\u{1F44B}\\u{1F3FC}', '\\u{1F44B}\\u{1F3FD}', '\\u{1F44B}\\u{1F3FE}', '\\u{1F44B}\\u{1F3FF}', '\\u{1F44C}\\u{1F3FB}', '\\u{1F44C}\\u{1F3FC}', '\\u{1F44C}\\u{1F3FD}', '\\u{1F44C}\\u{1F3FE}', '\\u{1F44C}\\u{1F3FF}', '\\u{1F44D}\\u{1F3FB}', '\\u{1F44D}\\u{1F3FC}', '\\u{1F44D}\\u{1F3FD}', '\\u{1F44D}\\u{1F3FE}', '\\u{1F44D}\\u{1F3FF}', '\\u{1F44E}\\u{1F3FB}', '\\u{1F44E}\\u{1F3FC}', '\\u{1F44E}\\u{1F3FD}', '\\u{1F44E}\\u{1F3FE}', '\\u{1F44E}\\u{1F3FF}', '\\u{1F44F}\\u{1F3FB}', '\\u{1F44F}\\u{1F3FC}', '\\u{1F44F}\\u{1F3FD}', '\\u{1F44F}\\u{1F3FE}', '\\u{1F44F}\\u{1F3FF}', '\\u{1F450}\\u{1F3FB}', '\\u{1F450}\\u{1F3FC}', '\\u{1F450}\\u{1F3FD}', '\\u{1F450}\\u{1F3FE}', '\\u{1F450}\\u{1F3FF}', '\\u{1F466}\\u{1F3FB}', '\\u{1F466}\\u{1F3FC}', '\\u{1F466}\\u{1F3FD}', '\\u{1F466}\\u{1F3FE}', '\\u{1F466}\\u{1F3FF}', '\\u{1F467}\\u{1F3FB}', '\\u{1F467}\\u{1F3FC}', '\\u{1F467}\\u{1F3FD}', '\\u{1F467}\\u{1F3FE}', '\\u{1F467}\\u{1F3FF}', '\\u{1F468}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u{1F33E}', '\\u{1F468}\\u200D\\u{1F373}', '\\u{1F468}\\u200D\\u{1F37C}', '\\u{1F468}\\u200D\\u{1F393}', '\\u{1F468}\\u200D\\u{1F3A4}', '\\u{1F468}\\u200D\\u{1F3A8}', '\\u{1F468}\\u200D\\u{1F3EB}', '\\u{1F468}\\u200D\\u{1F3ED}', '\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F4BB}', '\\u{1F468}\\u200D\\u{1F4BC}', '\\u{1F468}\\u200D\\u{1F527}', '\\u{1F468}\\u200D\\u{1F52C}', '\\u{1F468}\\u200D\\u{1F680}', '\\u{1F468}\\u200D\\u{1F692}', '\\u{1F468}\\u200D\\u{1F9AF}', '\\u{1F468}\\u200D\\u{1F9B0}', '\\u{1F468}\\u200D\\u{1F9B1}', '\\u{1F468}\\u200D\\u{1F9B2}', '\\u{1F468}\\u200D\\u{1F9B3}', '\\u{1F468}\\u200D\\u{1F9BC}', '\\u{1F468}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F469}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u{1F33E}', '\\u{1F469}\\u200D\\u{1F373}', '\\u{1F469}\\u200D\\u{1F37C}', '\\u{1F469}\\u200D\\u{1F393}', '\\u{1F469}\\u200D\\u{1F3A4}', '\\u{1F469}\\u200D\\u{1F3A8}', '\\u{1F469}\\u200D\\u{1F3EB}', '\\u{1F469}\\u200D\\u{1F3ED}', '\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F4BB}', '\\u{1F469}\\u200D\\u{1F4BC}', '\\u{1F469}\\u200D\\u{1F527}', '\\u{1F469}\\u200D\\u{1F52C}', '\\u{1F469}\\u200D\\u{1F680}', '\\u{1F469}\\u200D\\u{1F692}', '\\u{1F469}\\u200D\\u{1F9AF}', '\\u{1F469}\\u200D\\u{1F9B0}', '\\u{1F469}\\u200D\\u{1F9B1}', '\\u{1F469}\\u200D\\u{1F9B2}', '\\u{1F469}\\u200D\\u{1F9B3}', '\\u{1F469}\\u200D\\u{1F9BC}', '\\u{1F469}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F46B}\\u{1F3FB}', '\\u{1F46B}\\u{1F3FC}', '\\u{1F46B}\\u{1F3FD}', '\\u{1F46B}\\u{1F3FE}', '\\u{1F46B}\\u{1F3FF}', '\\u{1F46C}\\u{1F3FB}', '\\u{1F46C}\\u{1F3FC}', '\\u{1F46C}\\u{1F3FD}', '\\u{1F46C}\\u{1F3FE}', '\\u{1F46C}\\u{1F3FF}', '\\u{1F46D}\\u{1F3FB}', '\\u{1F46D}\\u{1F3FC}', '\\u{1F46D}\\u{1F3FD}', '\\u{1F46D}\\u{1F3FE}', '\\u{1F46D}\\u{1F3FF}', '\\u{1F46E}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FB}', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FC}', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FD}', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FE}', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FF}', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F46F}\\u200D\\u2640\\uFE0F', '\\u{1F46F}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FB}', '\\u{1F470}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FC}', '\\u{1F470}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FD}', '\\u{1F470}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FE}', '\\u{1F470}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FF}', '\\u{1F470}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FB}', '\\u{1F471}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FC}', '\\u{1F471}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FD}', '\\u{1F471}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FE}', '\\u{1F471}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FF}', '\\u{1F471}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F472}\\u{1F3FB}', '\\u{1F472}\\u{1F3FC}', '\\u{1F472}\\u{1F3FD}', '\\u{1F472}\\u{1F3FE}', '\\u{1F472}\\u{1F3FF}', '\\u{1F473}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FB}', '\\u{1F473}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FC}', '\\u{1F473}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FD}', '\\u{1F473}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FE}', '\\u{1F473}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FF}', '\\u{1F473}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F474}\\u{1F3FB}', '\\u{1F474}\\u{1F3FC}', '\\u{1F474}\\u{1F3FD}', '\\u{1F474}\\u{1F3FE}', '\\u{1F474}\\u{1F3FF}', '\\u{1F475}\\u{1F3FB}', '\\u{1F475}\\u{1F3FC}', '\\u{1F475}\\u{1F3FD}', '\\u{1F475}\\u{1F3FE}', '\\u{1F475}\\u{1F3FF}', '\\u{1F476}\\u{1F3FB}', '\\u{1F476}\\u{1F3FC}', '\\u{1F476}\\u{1F3FD}', '\\u{1F476}\\u{1F3FE}', '\\u{1F476}\\u{1F3FF}', '\\u{1F477}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FB}', '\\u{1F477}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FC}', '\\u{1F477}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FD}', '\\u{1F477}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FE}', '\\u{1F477}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FF}', '\\u{1F477}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F478}\\u{1F3FB}', '\\u{1F478}\\u{1F3FC}', '\\u{1F478}\\u{1F3FD}', '\\u{1F478}\\u{1F3FE}', '\\u{1F478}\\u{1F3FF}', '\\u{1F47C}\\u{1F3FB}', '\\u{1F47C}\\u{1F3FC}', '\\u{1F47C}\\u{1F3FD}', '\\u{1F47C}\\u{1F3FE}', '\\u{1F47C}\\u{1F3FF}', '\\u{1F481}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FB}', '\\u{1F481}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FC}', '\\u{1F481}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FD}', '\\u{1F481}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FE}', '\\u{1F481}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FF}', '\\u{1F481}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FB}', '\\u{1F482}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FC}', '\\u{1F482}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FD}', '\\u{1F482}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FE}', '\\u{1F482}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FF}', '\\u{1F482}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F483}\\u{1F3FB}', '\\u{1F483}\\u{1F3FC}', '\\u{1F483}\\u{1F3FD}', '\\u{1F483}\\u{1F3FE}', '\\u{1F483}\\u{1F3FF}', '\\u{1F485}\\u{1F3FB}', '\\u{1F485}\\u{1F3FC}', '\\u{1F485}\\u{1F3FD}', '\\u{1F485}\\u{1F3FE}', '\\u{1F485}\\u{1F3FF}', '\\u{1F486}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FB}', '\\u{1F486}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FC}', '\\u{1F486}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FD}', '\\u{1F486}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FE}', '\\u{1F486}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FF}', '\\u{1F486}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FB}', '\\u{1F487}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FC}', '\\u{1F487}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FD}', '\\u{1F487}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FE}', '\\u{1F487}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FF}', '\\u{1F487}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F48F}\\u{1F3FB}', '\\u{1F48F}\\u{1F3FC}', '\\u{1F48F}\\u{1F3FD}', '\\u{1F48F}\\u{1F3FE}', '\\u{1F48F}\\u{1F3FF}', '\\u{1F491}\\u{1F3FB}', '\\u{1F491}\\u{1F3FC}', '\\u{1F491}\\u{1F3FD}', '\\u{1F491}\\u{1F3FE}', '\\u{1F491}\\u{1F3FF}', '\\u{1F4AA}\\u{1F3FB}', '\\u{1F4AA}\\u{1F3FC}', '\\u{1F4AA}\\u{1F3FD}', '\\u{1F4AA}\\u{1F3FE}', '\\u{1F4AA}\\u{1F3FF}', '\\u{1F4FD}\\uFE0F', '\\u{1F549}\\uFE0F', '\\u{1F54A}\\uFE0F', '\\u{1F56F}\\uFE0F', '\\u{1F570}\\uFE0F', '\\u{1F573}\\uFE0F', '\\u{1F574}\\u{1F3FB}', '\\u{1F574}\\u{1F3FC}', '\\u{1F574}\\u{1F3FD}', '\\u{1F574}\\u{1F3FE}', '\\u{1F574}\\u{1F3FF}', '\\u{1F574}\\uFE0F', '\\u{1F575}\\u{1F3FB}', '\\u{1F575}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FC}', '\\u{1F575}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FD}', '\\u{1F575}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FE}', '\\u{1F575}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FF}', '\\u{1F575}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F576}\\uFE0F', '\\u{1F577}\\uFE0F', '\\u{1F578}\\uFE0F', '\\u{1F579}\\uFE0F', '\\u{1F57A}\\u{1F3FB}', '\\u{1F57A}\\u{1F3FC}', '\\u{1F57A}\\u{1F3FD}', '\\u{1F57A}\\u{1F3FE}', '\\u{1F57A}\\u{1F3FF}', '\\u{1F587}\\uFE0F', '\\u{1F58A}\\uFE0F', '\\u{1F58B}\\uFE0F', '\\u{1F58C}\\uFE0F', '\\u{1F58D}\\uFE0F', '\\u{1F590}\\u{1F3FB}', '\\u{1F590}\\u{1F3FC}', '\\u{1F590}\\u{1F3FD}', '\\u{1F590}\\u{1F3FE}', '\\u{1F590}\\u{1F3FF}', '\\u{1F590}\\uFE0F', '\\u{1F595}\\u{1F3FB}', '\\u{1F595}\\u{1F3FC}', '\\u{1F595}\\u{1F3FD}', '\\u{1F595}\\u{1F3FE}', '\\u{1F595}\\u{1F3FF}', '\\u{1F596}\\u{1F3FB}', '\\u{1F596}\\u{1F3FC}', '\\u{1F596}\\u{1F3FD}', '\\u{1F596}\\u{1F3FE}', '\\u{1F596}\\u{1F3FF}', '\\u{1F5A5}\\uFE0F', '\\u{1F5A8}\\uFE0F', '\\u{1F5B1}\\uFE0F', '\\u{1F5B2}\\uFE0F', '\\u{1F5BC}\\uFE0F', '\\u{1F5C2}\\uFE0F', '\\u{1F5C3}\\uFE0F', '\\u{1F5C4}\\uFE0F', '\\u{1F5D1}\\uFE0F', '\\u{1F5D2}\\uFE0F', '\\u{1F5D3}\\uFE0F', '\\u{1F5DC}\\uFE0F', '\\u{1F5DD}\\uFE0F', '\\u{1F5DE}\\uFE0F', '\\u{1F5E1}\\uFE0F', '\\u{1F5E3}\\uFE0F', '\\u{1F5E8}\\uFE0F', '\\u{1F5EF}\\uFE0F', '\\u{1F5F3}\\uFE0F', '\\u{1F5FA}\\uFE0F', '\\u{1F62E}\\u200D\\u{1F4A8}', '\\u{1F635}\\u200D\\u{1F4AB}', '\\u{1F636}\\u200D\\u{1F32B}\\uFE0F', '\\u{1F645}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FB}', '\\u{1F645}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FC}', '\\u{1F645}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FD}', '\\u{1F645}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FE}', '\\u{1F645}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FF}', '\\u{1F645}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FB}', '\\u{1F646}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FC}', '\\u{1F646}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FD}', '\\u{1F646}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FE}', '\\u{1F646}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FF}', '\\u{1F646}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FB}', '\\u{1F647}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FC}', '\\u{1F647}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FD}', '\\u{1F647}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FE}', '\\u{1F647}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FF}', '\\u{1F647}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FB}', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FC}', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FD}', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FE}', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FF}', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64C}\\u{1F3FB}', '\\u{1F64C}\\u{1F3FC}', '\\u{1F64C}\\u{1F3FD}', '\\u{1F64C}\\u{1F3FE}', '\\u{1F64C}\\u{1F3FF}', '\\u{1F64D}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FB}', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FC}', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FD}', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FE}', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FF}', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FB}', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FC}', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FD}', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FE}', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FF}', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64F}\\u{1F3FB}', '\\u{1F64F}\\u{1F3FC}', '\\u{1F64F}\\u{1F3FD}', '\\u{1F64F}\\u{1F3FE}', '\\u{1F64F}\\u{1F3FF}', '\\u{1F6A3}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FB}', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FC}', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FD}', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FE}', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FF}', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FB}', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FC}', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FD}', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FE}', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FF}', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FB}', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FC}', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FD}', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FE}', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FF}', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FB}', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FC}', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FD}', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FE}', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FF}', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6C0}\\u{1F3FB}', '\\u{1F6C0}\\u{1F3FC}', '\\u{1F6C0}\\u{1F3FD}', '\\u{1F6C0}\\u{1F3FE}', '\\u{1F6C0}\\u{1F3FF}', '\\u{1F6CB}\\uFE0F', '\\u{1F6CC}\\u{1F3FB}', '\\u{1F6CC}\\u{1F3FC}', '\\u{1F6CC}\\u{1F3FD}', '\\u{1F6CC}\\u{1F3FE}', '\\u{1F6CC}\\u{1F3FF}', '\\u{1F6CD}\\uFE0F', '\\u{1F6CE}\\uFE0F', '\\u{1F6CF}\\uFE0F', '\\u{1F6E0}\\uFE0F', '\\u{1F6E1}\\uFE0F', '\\u{1F6E2}\\uFE0F', '\\u{1F6E3}\\uFE0F', '\\u{1F6E4}\\uFE0F', '\\u{1F6E5}\\uFE0F', '\\u{1F6E9}\\uFE0F', '\\u{1F6F0}\\uFE0F', '\\u{1F6F3}\\uFE0F', '\\u{1F90C}\\u{1F3FB}', '\\u{1F90C}\\u{1F3FC}', '\\u{1F90C}\\u{1F3FD}', '\\u{1F90C}\\u{1F3FE}', '\\u{1F90C}\\u{1F3FF}', '\\u{1F90F}\\u{1F3FB}', '\\u{1F90F}\\u{1F3FC}', '\\u{1F90F}\\u{1F3FD}', '\\u{1F90F}\\u{1F3FE}', '\\u{1F90F}\\u{1F3FF}', '\\u{1F918}\\u{1F3FB}', '\\u{1F918}\\u{1F3FC}', '\\u{1F918}\\u{1F3FD}', '\\u{1F918}\\u{1F3FE}', '\\u{1F918}\\u{1F3FF}', '\\u{1F919}\\u{1F3FB}', '\\u{1F919}\\u{1F3FC}', '\\u{1F919}\\u{1F3FD}', '\\u{1F919}\\u{1F3FE}', '\\u{1F919}\\u{1F3FF}', '\\u{1F91A}\\u{1F3FB}', '\\u{1F91A}\\u{1F3FC}', '\\u{1F91A}\\u{1F3FD}', '\\u{1F91A}\\u{1F3FE}', '\\u{1F91A}\\u{1F3FF}', '\\u{1F91B}\\u{1F3FB}', '\\u{1F91B}\\u{1F3FC}', '\\u{1F91B}\\u{1F3FD}', '\\u{1F91B}\\u{1F3FE}', '\\u{1F91B}\\u{1F3FF}', '\\u{1F91C}\\u{1F3FB}', '\\u{1F91C}\\u{1F3FC}', '\\u{1F91C}\\u{1F3FD}', '\\u{1F91C}\\u{1F3FE}', '\\u{1F91C}\\u{1F3FF}', '\\u{1F91D}\\u{1F3FB}', '\\u{1F91D}\\u{1F3FC}', '\\u{1F91D}\\u{1F3FD}', '\\u{1F91D}\\u{1F3FE}', '\\u{1F91D}\\u{1F3FF}', '\\u{1F91E}\\u{1F3FB}', '\\u{1F91E}\\u{1F3FC}', '\\u{1F91E}\\u{1F3FD}', '\\u{1F91E}\\u{1F3FE}', '\\u{1F91E}\\u{1F3FF}', '\\u{1F91F}\\u{1F3FB}', '\\u{1F91F}\\u{1F3FC}', '\\u{1F91F}\\u{1F3FD}', '\\u{1F91F}\\u{1F3FE}', '\\u{1F91F}\\u{1F3FF}', '\\u{1F926}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FB}', '\\u{1F926}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FC}', '\\u{1F926}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FD}', '\\u{1F926}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FE}', '\\u{1F926}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FF}', '\\u{1F926}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F930}\\u{1F3FB}', '\\u{1F930}\\u{1F3FC}', '\\u{1F930}\\u{1F3FD}', '\\u{1F930}\\u{1F3FE}', '\\u{1F930}\\u{1F3FF}', '\\u{1F931}\\u{1F3FB}', '\\u{1F931}\\u{1F3FC}', '\\u{1F931}\\u{1F3FD}', '\\u{1F931}\\u{1F3FE}', '\\u{1F931}\\u{1F3FF}', '\\u{1F932}\\u{1F3FB}', '\\u{1F932}\\u{1F3FC}', '\\u{1F932}\\u{1F3FD}', '\\u{1F932}\\u{1F3FE}', '\\u{1F932}\\u{1F3FF}', '\\u{1F933}\\u{1F3FB}', '\\u{1F933}\\u{1F3FC}', '\\u{1F933}\\u{1F3FD}', '\\u{1F933}\\u{1F3FE}', '\\u{1F933}\\u{1F3FF}', '\\u{1F934}\\u{1F3FB}', '\\u{1F934}\\u{1F3FC}', '\\u{1F934}\\u{1F3FD}', '\\u{1F934}\\u{1F3FE}', '\\u{1F934}\\u{1F3FF}', '\\u{1F935}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FB}', '\\u{1F935}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FC}', '\\u{1F935}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FD}', '\\u{1F935}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FE}', '\\u{1F935}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FF}', '\\u{1F935}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F936}\\u{1F3FB}', '\\u{1F936}\\u{1F3FC}', '\\u{1F936}\\u{1F3FD}', '\\u{1F936}\\u{1F3FE}', '\\u{1F936}\\u{1F3FF}', '\\u{1F937}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FB}', '\\u{1F937}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FC}', '\\u{1F937}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FD}', '\\u{1F937}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FE}', '\\u{1F937}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FF}', '\\u{1F937}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FB}', '\\u{1F938}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FC}', '\\u{1F938}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FD}', '\\u{1F938}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FE}', '\\u{1F938}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FF}', '\\u{1F938}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FB}', '\\u{1F939}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FC}', '\\u{1F939}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FD}', '\\u{1F939}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FE}', '\\u{1F939}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FF}', '\\u{1F939}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93C}\\u200D\\u2640\\uFE0F', '\\u{1F93C}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FB}', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FC}', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FD}', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FE}', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FF}', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FB}', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FC}', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FD}', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FE}', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FF}', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F977}\\u{1F3FB}', '\\u{1F977}\\u{1F3FC}', '\\u{1F977}\\u{1F3FD}', '\\u{1F977}\\u{1F3FE}', '\\u{1F977}\\u{1F3FF}', '\\u{1F9B5}\\u{1F3FB}', '\\u{1F9B5}\\u{1F3FC}', '\\u{1F9B5}\\u{1F3FD}', '\\u{1F9B5}\\u{1F3FE}', '\\u{1F9B5}\\u{1F3FF}', '\\u{1F9B6}\\u{1F3FB}', '\\u{1F9B6}\\u{1F3FC}', '\\u{1F9B6}\\u{1F3FD}', '\\u{1F9B6}\\u{1F3FE}', '\\u{1F9B6}\\u{1F3FF}', '\\u{1F9B8}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FB}', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FC}', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FD}', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FE}', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FF}', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FB}', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FC}', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FD}', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FE}', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FF}', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9BB}\\u{1F3FB}', '\\u{1F9BB}\\u{1F3FC}', '\\u{1F9BB}\\u{1F3FD}', '\\u{1F9BB}\\u{1F3FE}', '\\u{1F9BB}\\u{1F3FF}', '\\u{1F9CD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FB}', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FC}', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FD}', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FE}', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FF}', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FB}', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FC}', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FD}', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FE}', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FF}', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FB}', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FC}', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FD}', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FE}', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FF}', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D1}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u200D\\u{1F373}', '\\u{1F9D1}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u200D\\u{1F384}', '\\u{1F9D1}\\u200D\\u{1F393}', '\\u{1F9D1}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u200D\\u{1F527}', '\\u{1F9D1}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u200D\\u{1F680}', '\\u{1F9D1}\\u200D\\u{1F692}', '\\u{1F9D1}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}', '\\u{1F9D1}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F9D2}\\u{1F3FB}', '\\u{1F9D2}\\u{1F3FC}', '\\u{1F9D2}\\u{1F3FD}', '\\u{1F9D2}\\u{1F3FE}', '\\u{1F9D2}\\u{1F3FF}', '\\u{1F9D3}\\u{1F3FB}', '\\u{1F9D3}\\u{1F3FC}', '\\u{1F9D3}\\u{1F3FD}', '\\u{1F9D3}\\u{1F3FE}', '\\u{1F9D3}\\u{1F3FF}', '\\u{1F9D4}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FB}', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FC}', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FD}', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FE}', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FF}', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D5}\\u{1F3FB}', '\\u{1F9D5}\\u{1F3FC}', '\\u{1F9D5}\\u{1F3FD}', '\\u{1F9D5}\\u{1F3FE}', '\\u{1F9D5}\\u{1F3FF}', '\\u{1F9D6}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FB}', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FC}', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FD}', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FE}', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FF}', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FB}', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FC}', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FD}', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FE}', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FF}', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FB}', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FC}', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FD}', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FE}', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FF}', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FB}', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FC}', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FD}', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FE}', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FF}', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FB}', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FC}', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FD}', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FE}', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FF}', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FB}', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FC}', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FD}', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FE}', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FF}', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FB}', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FC}', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FD}', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FE}', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FF}', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FB}', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FC}', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FD}', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FE}', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FF}', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DE}\\u200D\\u2640\\uFE0F', '\\u{1F9DE}\\u200D\\u2642\\uFE0F', '\\u{1F9DF}\\u200D\\u2640\\uFE0F', '\\u{1F9DF}\\u200D\\u2642\\uFE0F', '\\u{1FAC3}\\u{1F3FB}', '\\u{1FAC3}\\u{1F3FC}', '\\u{1FAC3}\\u{1F3FD}', '\\u{1FAC3}\\u{1F3FE}', '\\u{1FAC3}\\u{1F3FF}', '\\u{1FAC4}\\u{1F3FB}', '\\u{1FAC4}\\u{1F3FC}', '\\u{1FAC4}\\u{1F3FD}', '\\u{1FAC4}\\u{1F3FE}', '\\u{1FAC4}\\u{1F3FF}', '\\u{1FAC5}\\u{1F3FB}', '\\u{1FAC5}\\u{1F3FC}', '\\u{1FAC5}\\u{1F3FD}', '\\u{1FAC5}\\u{1F3FE}', '\\u{1FAC5}\\u{1F3FF}', '\\u{1FAF0}\\u{1F3FB}', '\\u{1FAF0}\\u{1F3FC}', '\\u{1FAF0}\\u{1F3FD}', '\\u{1FAF0}\\u{1F3FE}', '\\u{1FAF0}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF3}\\u{1F3FB}', '\\u{1FAF3}\\u{1F3FC}', '\\u{1FAF3}\\u{1F3FD}', '\\u{1FAF3}\\u{1F3FE}', '\\u{1FAF3}\\u{1F3FF}', '\\u{1FAF4}\\u{1F3FB}', '\\u{1FAF4}\\u{1F3FC}', '\\u{1FAF4}\\u{1F3FD}', '\\u{1FAF4}\\u{1F3FE}', '\\u{1FAF4}\\u{1F3FF}', '\\u{1FAF5}\\u{1F3FB}', '\\u{1FAF5}\\u{1F3FC}', '\\u{1FAF5}\\u{1F3FD}', '\\u{1FAF5}\\u{1F3FE}', '\\u{1FAF5}\\u{1F3FF}', '\\u{1FAF6}\\u{1F3FB}', '\\u{1FAF6}\\u{1F3FC}', '\\u{1FAF6}\\u{1F3FD}', '\\u{1FAF6}\\u{1F3FE}', '\\u{1FAF6}\\u{1F3FF}', '\\u{1FAF7}\\u{1F3FB}', '\\u{1FAF7}\\u{1F3FC}', '\\u{1FAF7}\\u{1F3FD}', '\\u{1FAF7}\\u{1F3FE}', '\\u{1FAF7}\\u{1F3FF}', '\\u{1FAF8}\\u{1F3FB}', '\\u{1FAF8}\\u{1F3FC}', '\\u{1FAF8}\\u{1F3FD}', '\\u{1FAF8}\\u{1F3FE}', '\\u{1FAF8}\\u{1F3FF}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F1E6}\\u{1F1E8}', '\\u{1F1E6}\\u{1F1E9}', '\\u{1F1E6}\\u{1F1EA}', '\\u{1F1E6}\\u{1F1EB}', '\\u{1F1E6}\\u{1F1EC}', '\\u{1F1E6}\\u{1F1EE}', '\\u{1F1E6}\\u{1F1F1}', '\\u{1F1E6}\\u{1F1F2}', '\\u{1F1E6}\\u{1F1F4}', '\\u{1F1E6}\\u{1F1F6}', '\\u{1F1E6}\\u{1F1F7}', '\\u{1F1E6}\\u{1F1F8}', '\\u{1F1E6}\\u{1F1F9}', '\\u{1F1E6}\\u{1F1FA}', '\\u{1F1E6}\\u{1F1FC}', '\\u{1F1E6}\\u{1F1FD}', '\\u{1F1E6}\\u{1F1FF}', '\\u{1F1E7}\\u{1F1E6}', '\\u{1F1E7}\\u{1F1E7}', '\\u{1F1E7}\\u{1F1E9}', '\\u{1F1E7}\\u{1F1EA}', '\\u{1F1E7}\\u{1F1EB}', '\\u{1F1E7}\\u{1F1EC}', '\\u{1F1E7}\\u{1F1ED}', '\\u{1F1E7}\\u{1F1EE}', '\\u{1F1E7}\\u{1F1EF}', '\\u{1F1E7}\\u{1F1F1}', '\\u{1F1E7}\\u{1F1F2}', '\\u{1F1E7}\\u{1F1F3}', '\\u{1F1E7}\\u{1F1F4}', '\\u{1F1E7}\\u{1F1F6}', '\\u{1F1E7}\\u{1F1F7}', '\\u{1F1E7}\\u{1F1F8}', '\\u{1F1E7}\\u{1F1F9}', '\\u{1F1E7}\\u{1F1FB}', '\\u{1F1E7}\\u{1F1FC}', '\\u{1F1E7}\\u{1F1FE}', '\\u{1F1E7}\\u{1F1FF}', '\\u{1F1E8}\\u{1F1E6}', '\\u{1F1E8}\\u{1F1E8}', '\\u{1F1E8}\\u{1F1E9}', '\\u{1F1E8}\\u{1F1EB}', '\\u{1F1E8}\\u{1F1EC}', '\\u{1F1E8}\\u{1F1ED}', '\\u{1F1E8}\\u{1F1EE}', '\\u{1F1E8}\\u{1F1F0}', '\\u{1F1E8}\\u{1F1F1}', '\\u{1F1E8}\\u{1F1F2}', '\\u{1F1E8}\\u{1F1F3}', '\\u{1F1E8}\\u{1F1F4}', '\\u{1F1E8}\\u{1F1F5}', '\\u{1F1E8}\\u{1F1F7}', '\\u{1F1E8}\\u{1F1FA}', '\\u{1F1E8}\\u{1F1FB}', '\\u{1F1E8}\\u{1F1FC}', '\\u{1F1E8}\\u{1F1FD}', '\\u{1F1E8}\\u{1F1FE}', '\\u{1F1E8}\\u{1F1FF}', '\\u{1F1E9}\\u{1F1EA}', '\\u{1F1E9}\\u{1F1EC}', '\\u{1F1E9}\\u{1F1EF}', '\\u{1F1E9}\\u{1F1F0}', '\\u{1F1E9}\\u{1F1F2}', '\\u{1F1E9}\\u{1F1F4}', '\\u{1F1E9}\\u{1F1FF}', '\\u{1F1EA}\\u{1F1E6}', '\\u{1F1EA}\\u{1F1E8}', '\\u{1F1EA}\\u{1F1EA}', '\\u{1F1EA}\\u{1F1EC}', '\\u{1F1EA}\\u{1F1ED}', '\\u{1F1EA}\\u{1F1F7}', '\\u{1F1EA}\\u{1F1F8}', '\\u{1F1EA}\\u{1F1F9}', '\\u{1F1EA}\\u{1F1FA}', '\\u{1F1EB}\\u{1F1EE}', '\\u{1F1EB}\\u{1F1EF}', '\\u{1F1EB}\\u{1F1F0}', '\\u{1F1EB}\\u{1F1F2}', '\\u{1F1EB}\\u{1F1F4}', '\\u{1F1EB}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1E6}', '\\u{1F1EC}\\u{1F1E7}', '\\u{1F1EC}\\u{1F1E9}', '\\u{1F1EC}\\u{1F1EA}', '\\u{1F1EC}\\u{1F1EB}', '\\u{1F1EC}\\u{1F1EC}', '\\u{1F1EC}\\u{1F1ED}', '\\u{1F1EC}\\u{1F1EE}', '\\u{1F1EC}\\u{1F1F1}', '\\u{1F1EC}\\u{1F1F2}', '\\u{1F1EC}\\u{1F1F3}', '\\u{1F1EC}\\u{1F1F5}', '\\u{1F1EC}\\u{1F1F6}', '\\u{1F1EC}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1F8}', '\\u{1F1EC}\\u{1F1F9}', '\\u{1F1EC}\\u{1F1FA}', '\\u{1F1EC}\\u{1F1FC}', '\\u{1F1EC}\\u{1F1FE}', '\\u{1F1ED}\\u{1F1F0}', '\\u{1F1ED}\\u{1F1F2}', '\\u{1F1ED}\\u{1F1F3}', '\\u{1F1ED}\\u{1F1F7}', '\\u{1F1ED}\\u{1F1F9}', '\\u{1F1ED}\\u{1F1FA}', '\\u{1F1EE}\\u{1F1E8}', '\\u{1F1EE}\\u{1F1E9}', '\\u{1F1EE}\\u{1F1EA}', '\\u{1F1EE}\\u{1F1F1}', '\\u{1F1EE}\\u{1F1F2}', '\\u{1F1EE}\\u{1F1F3}', '\\u{1F1EE}\\u{1F1F4}', '\\u{1F1EE}\\u{1F1F6}', '\\u{1F1EE}\\u{1F1F7}', '\\u{1F1EE}\\u{1F1F8}', '\\u{1F1EE}\\u{1F1F9}', '\\u{1F1EF}\\u{1F1EA}', '\\u{1F1EF}\\u{1F1F2}', '\\u{1F1EF}\\u{1F1F4}', '\\u{1F1EF}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1EA}', '\\u{1F1F0}\\u{1F1EC}', '\\u{1F1F0}\\u{1F1ED}', '\\u{1F1F0}\\u{1F1EE}', '\\u{1F1F0}\\u{1F1F2}', '\\u{1F1F0}\\u{1F1F3}', '\\u{1F1F0}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1F7}', '\\u{1F1F0}\\u{1F1FC}', '\\u{1F1F0}\\u{1F1FE}', '\\u{1F1F0}\\u{1F1FF}', '\\u{1F1F1}\\u{1F1E6}', '\\u{1F1F1}\\u{1F1E7}', '\\u{1F1F1}\\u{1F1E8}', '\\u{1F1F1}\\u{1F1EE}', '\\u{1F1F1}\\u{1F1F0}', '\\u{1F1F1}\\u{1F1F7}', '\\u{1F1F1}\\u{1F1F8}', '\\u{1F1F1}\\u{1F1F9}', '\\u{1F1F1}\\u{1F1FA}', '\\u{1F1F1}\\u{1F1FB}', '\\u{1F1F1}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1E6}', '\\u{1F1F2}\\u{1F1E8}', '\\u{1F1F2}\\u{1F1E9}', '\\u{1F1F2}\\u{1F1EA}', '\\u{1F1F2}\\u{1F1EB}', '\\u{1F1F2}\\u{1F1EC}', '\\u{1F1F2}\\u{1F1ED}', '\\u{1F1F2}\\u{1F1F0}', '\\u{1F1F2}\\u{1F1F1}', '\\u{1F1F2}\\u{1F1F2}', '\\u{1F1F2}\\u{1F1F3}', '\\u{1F1F2}\\u{1F1F4}', '\\u{1F1F2}\\u{1F1F5}', '\\u{1F1F2}\\u{1F1F6}', '\\u{1F1F2}\\u{1F1F7}', '\\u{1F1F2}\\u{1F1F8}', '\\u{1F1F2}\\u{1F1F9}', '\\u{1F1F2}\\u{1F1FA}', '\\u{1F1F2}\\u{1F1FB}', '\\u{1F1F2}\\u{1F1FC}', '\\u{1F1F2}\\u{1F1FD}', '\\u{1F1F2}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1FF}', '\\u{1F1F3}\\u{1F1E6}', '\\u{1F1F3}\\u{1F1E8}', '\\u{1F1F3}\\u{1F1EA}', '\\u{1F1F3}\\u{1F1EB}', '\\u{1F1F3}\\u{1F1EC}', '\\u{1F1F3}\\u{1F1EE}', '\\u{1F1F3}\\u{1F1F1}', '\\u{1F1F3}\\u{1F1F4}', '\\u{1F1F3}\\u{1F1F5}', '\\u{1F1F3}\\u{1F1F7}', '\\u{1F1F3}\\u{1F1FA}', '\\u{1F1F3}\\u{1F1FF}', '\\u{1F1F4}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1E6}', '\\u{1F1F5}\\u{1F1EA}', '\\u{1F1F5}\\u{1F1EB}', '\\u{1F1F5}\\u{1F1EC}', '\\u{1F1F5}\\u{1F1ED}', '\\u{1F1F5}\\u{1F1F0}', '\\u{1F1F5}\\u{1F1F1}', '\\u{1F1F5}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1F3}', '\\u{1F1F5}\\u{1F1F7}', '\\u{1F1F5}\\u{1F1F8}', '\\u{1F1F5}\\u{1F1F9}', '\\u{1F1F5}\\u{1F1FC}', '\\u{1F1F5}\\u{1F1FE}', '\\u{1F1F6}\\u{1F1E6}', '\\u{1F1F7}\\u{1F1EA}', '\\u{1F1F7}\\u{1F1F4}', '\\u{1F1F7}\\u{1F1F8}', '\\u{1F1F7}\\u{1F1FA}', '\\u{1F1F7}\\u{1F1FC}', '\\u{1F1F8}\\u{1F1E6}', '\\u{1F1F8}\\u{1F1E7}', '\\u{1F1F8}\\u{1F1E8}', '\\u{1F1F8}\\u{1F1E9}', '\\u{1F1F8}\\u{1F1EA}', '\\u{1F1F8}\\u{1F1EC}', '\\u{1F1F8}\\u{1F1ED}', '\\u{1F1F8}\\u{1F1EE}', '\\u{1F1F8}\\u{1F1EF}', '\\u{1F1F8}\\u{1F1F0}', '\\u{1F1F8}\\u{1F1F1}', '\\u{1F1F8}\\u{1F1F2}', '\\u{1F1F8}\\u{1F1F3}', '\\u{1F1F8}\\u{1F1F4}', '\\u{1F1F8}\\u{1F1F7}', '\\u{1F1F8}\\u{1F1F8}', '\\u{1F1F8}\\u{1F1F9}', '\\u{1F1F8}\\u{1F1FB}', '\\u{1F1F8}\\u{1F1FD}', '\\u{1F1F8}\\u{1F1FE}', '\\u{1F1F8}\\u{1F1FF}', '\\u{1F1F9}\\u{1F1E6}', '\\u{1F1F9}\\u{1F1E8}', '\\u{1F1F9}\\u{1F1E9}', '\\u{1F1F9}\\u{1F1EB}', '\\u{1F1F9}\\u{1F1EC}', '\\u{1F1F9}\\u{1F1ED}', '\\u{1F1F9}\\u{1F1EF}', '\\u{1F1F9}\\u{1F1F0}', '\\u{1F1F9}\\u{1F1F1}', '\\u{1F1F9}\\u{1F1F2}', '\\u{1F1F9}\\u{1F1F3}', '\\u{1F1F9}\\u{1F1F4}', '\\u{1F1F9}\\u{1F1F7}', '\\u{1F1F9}\\u{1F1F9}', '\\u{1F1F9}\\u{1F1FB}', '\\u{1F1F9}\\u{1F1FC}', '\\u{1F1F9}\\u{1F1FF}', '\\u{1F1FA}\\u{1F1E6}', '\\u{1F1FA}\\u{1F1EC}', '\\u{1F1FA}\\u{1F1F2}', '\\u{1F1FA}\\u{1F1F3}', '\\u{1F1FA}\\u{1F1F8}', '\\u{1F1FA}\\u{1F1FE}', '\\u{1F1FA}\\u{1F1FF}', '\\u{1F1FB}\\u{1F1E6}', '\\u{1F1FB}\\u{1F1E8}', '\\u{1F1FB}\\u{1F1EA}', '\\u{1F1FB}\\u{1F1EC}', '\\u{1F1FB}\\u{1F1EE}', '\\u{1F1FB}\\u{1F1F3}', '\\u{1F1FB}\\u{1F1FA}', '\\u{1F1FC}\\u{1F1EB}', '\\u{1F1FC}\\u{1F1F8}', '\\u{1F1FD}\\u{1F1F0}', '\\u{1F1FE}\\u{1F1EA}', '\\u{1F1FE}\\u{1F1F9}', '\\u{1F1FF}\\u{1F1E6}', '\\u{1F1FF}\\u{1F1F2}', '\\u{1F1FF}\\u{1F1FC}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u261D\\u{1F3FB}', '\\u261D\\u{1F3FC}', '\\u261D\\u{1F3FD}', '\\u261D\\u{1F3FE}', '\\u261D\\u{1F3FF}', '\\u26F9\\u{1F3FB}', '\\u26F9\\u{1F3FC}', '\\u26F9\\u{1F3FD}', '\\u26F9\\u{1F3FE}', '\\u26F9\\u{1F3FF}', '\\u270A\\u{1F3FB}', '\\u270A\\u{1F3FC}', '\\u270A\\u{1F3FD}', '\\u270A\\u{1F3FE}', '\\u270A\\u{1F3FF}', '\\u270B\\u{1F3FB}', '\\u270B\\u{1F3FC}', '\\u270B\\u{1F3FD}', '\\u270B\\u{1F3FE}', '\\u270B\\u{1F3FF}', '\\u270C\\u{1F3FB}', '\\u270C\\u{1F3FC}', '\\u270C\\u{1F3FD}', '\\u270C\\u{1F3FE}', '\\u270C\\u{1F3FF}', '\\u270D\\u{1F3FB}', '\\u270D\\u{1F3FC}', '\\u270D\\u{1F3FD}', '\\u270D\\u{1F3FE}', '\\u270D\\u{1F3FF}', '\\u{1F385}\\u{1F3FB}', '\\u{1F385}\\u{1F3FC}', '\\u{1F385}\\u{1F3FD}', '\\u{1F385}\\u{1F3FE}', '\\u{1F385}\\u{1F3FF}', '\\u{1F3C2}\\u{1F3FB}', '\\u{1F3C2}\\u{1F3FC}', '\\u{1F3C2}\\u{1F3FD}', '\\u{1F3C2}\\u{1F3FE}', '\\u{1F3C2}\\u{1F3FF}', '\\u{1F3C3}\\u{1F3FB}', '\\u{1F3C3}\\u{1F3FC}', '\\u{1F3C3}\\u{1F3FD}', '\\u{1F3C3}\\u{1F3FE}', '\\u{1F3C3}\\u{1F3FF}', '\\u{1F3C4}\\u{1F3FB}', '\\u{1F3C4}\\u{1F3FC}', '\\u{1F3C4}\\u{1F3FD}', '\\u{1F3C4}\\u{1F3FE}', '\\u{1F3C4}\\u{1F3FF}', '\\u{1F3C7}\\u{1F3FB}', '\\u{1F3C7}\\u{1F3FC}', '\\u{1F3C7}\\u{1F3FD}', '\\u{1F3C7}\\u{1F3FE}', '\\u{1F3C7}\\u{1F3FF}', '\\u{1F3CA}\\u{1F3FB}', '\\u{1F3CA}\\u{1F3FC}', '\\u{1F3CA}\\u{1F3FD}', '\\u{1F3CA}\\u{1F3FE}', '\\u{1F3CA}\\u{1F3FF}', '\\u{1F3CB}\\u{1F3FB}', '\\u{1F3CB}\\u{1F3FC}', '\\u{1F3CB}\\u{1F3FD}', '\\u{1F3CB}\\u{1F3FE}', '\\u{1F3CB}\\u{1F3FF}', '\\u{1F3CC}\\u{1F3FB}', '\\u{1F3CC}\\u{1F3FC}', '\\u{1F3CC}\\u{1F3FD}', '\\u{1F3CC}\\u{1F3FE}', '\\u{1F3CC}\\u{1F3FF}', '\\u{1F442}\\u{1F3FB}', '\\u{1F442}\\u{1F3FC}', '\\u{1F442}\\u{1F3FD}', '\\u{1F442}\\u{1F3FE}', '\\u{1F442}\\u{1F3FF}', '\\u{1F443}\\u{1F3FB}', '\\u{1F443}\\u{1F3FC}', '\\u{1F443}\\u{1F3FD}', '\\u{1F443}\\u{1F3FE}', '\\u{1F443}\\u{1F3FF}', '\\u{1F446}\\u{1F3FB}', '\\u{1F446}\\u{1F3FC}', '\\u{1F446}\\u{1F3FD}', '\\u{1F446}\\u{1F3FE}', '\\u{1F446}\\u{1F3FF}', '\\u{1F447}\\u{1F3FB}', '\\u{1F447}\\u{1F3FC}', '\\u{1F447}\\u{1F3FD}', '\\u{1F447}\\u{1F3FE}', '\\u{1F447}\\u{1F3FF}', '\\u{1F448}\\u{1F3FB}', '\\u{1F448}\\u{1F3FC}', '\\u{1F448}\\u{1F3FD}', '\\u{1F448}\\u{1F3FE}', '\\u{1F448}\\u{1F3FF}', '\\u{1F449}\\u{1F3FB}', '\\u{1F449}\\u{1F3FC}', '\\u{1F449}\\u{1F3FD}', '\\u{1F449}\\u{1F3FE}', '\\u{1F449}\\u{1F3FF}', '\\u{1F44A}\\u{1F3FB}', '\\u{1F44A}\\u{1F3FC}', '\\u{1F44A}\\u{1F3FD}', '\\u{1F44A}\\u{1F3FE}', '\\u{1F44A}\\u{1F3FF}', '\\u{1F44B}\\u{1F3FB}', '\\u{1F44B}\\u{1F3FC}', '\\u{1F44B}\\u{1F3FD}', '\\u{1F44B}\\u{1F3FE}', '\\u{1F44B}\\u{1F3FF}', '\\u{1F44C}\\u{1F3FB}', '\\u{1F44C}\\u{1F3FC}', '\\u{1F44C}\\u{1F3FD}', '\\u{1F44C}\\u{1F3FE}', '\\u{1F44C}\\u{1F3FF}', '\\u{1F44D}\\u{1F3FB}', '\\u{1F44D}\\u{1F3FC}', '\\u{1F44D}\\u{1F3FD}', '\\u{1F44D}\\u{1F3FE}', '\\u{1F44D}\\u{1F3FF}', '\\u{1F44E}\\u{1F3FB}', '\\u{1F44E}\\u{1F3FC}', '\\u{1F44E}\\u{1F3FD}', '\\u{1F44E}\\u{1F3FE}', '\\u{1F44E}\\u{1F3FF}', '\\u{1F44F}\\u{1F3FB}', '\\u{1F44F}\\u{1F3FC}', '\\u{1F44F}\\u{1F3FD}', '\\u{1F44F}\\u{1F3FE}', '\\u{1F44F}\\u{1F3FF}', '\\u{1F450}\\u{1F3FB}', '\\u{1F450}\\u{1F3FC}', '\\u{1F450}\\u{1F3FD}', '\\u{1F450}\\u{1F3FE}', '\\u{1F450}\\u{1F3FF}', '\\u{1F466}\\u{1F3FB}', '\\u{1F466}\\u{1F3FC}', '\\u{1F466}\\u{1F3FD}', '\\u{1F466}\\u{1F3FE}', '\\u{1F466}\\u{1F3FF}', '\\u{1F467}\\u{1F3FB}', '\\u{1F467}\\u{1F3FC}', '\\u{1F467}\\u{1F3FD}', '\\u{1F467}\\u{1F3FE}', '\\u{1F467}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}', '\\u{1F46B}\\u{1F3FB}', '\\u{1F46B}\\u{1F3FC}', '\\u{1F46B}\\u{1F3FD}', '\\u{1F46B}\\u{1F3FE}', '\\u{1F46B}\\u{1F3FF}', '\\u{1F46C}\\u{1F3FB}', '\\u{1F46C}\\u{1F3FC}', '\\u{1F46C}\\u{1F3FD}', '\\u{1F46C}\\u{1F3FE}', '\\u{1F46C}\\u{1F3FF}', '\\u{1F46D}\\u{1F3FB}', '\\u{1F46D}\\u{1F3FC}', '\\u{1F46D}\\u{1F3FD}', '\\u{1F46D}\\u{1F3FE}', '\\u{1F46D}\\u{1F3FF}', '\\u{1F46E}\\u{1F3FB}', '\\u{1F46E}\\u{1F3FC}', '\\u{1F46E}\\u{1F3FD}', '\\u{1F46E}\\u{1F3FE}', '\\u{1F46E}\\u{1F3FF}', '\\u{1F470}\\u{1F3FB}', '\\u{1F470}\\u{1F3FC}', '\\u{1F470}\\u{1F3FD}', '\\u{1F470}\\u{1F3FE}', '\\u{1F470}\\u{1F3FF}', '\\u{1F471}\\u{1F3FB}', '\\u{1F471}\\u{1F3FC}', '\\u{1F471}\\u{1F3FD}', '\\u{1F471}\\u{1F3FE}', '\\u{1F471}\\u{1F3FF}', '\\u{1F472}\\u{1F3FB}', '\\u{1F472}\\u{1F3FC}', '\\u{1F472}\\u{1F3FD}', '\\u{1F472}\\u{1F3FE}', '\\u{1F472}\\u{1F3FF}', '\\u{1F473}\\u{1F3FB}', '\\u{1F473}\\u{1F3FC}', '\\u{1F473}\\u{1F3FD}', '\\u{1F473}\\u{1F3FE}', '\\u{1F473}\\u{1F3FF}', '\\u{1F474}\\u{1F3FB}', '\\u{1F474}\\u{1F3FC}', '\\u{1F474}\\u{1F3FD}', '\\u{1F474}\\u{1F3FE}', '\\u{1F474}\\u{1F3FF}', '\\u{1F475}\\u{1F3FB}', '\\u{1F475}\\u{1F3FC}', '\\u{1F475}\\u{1F3FD}', '\\u{1F475}\\u{1F3FE}', '\\u{1F475}\\u{1F3FF}', '\\u{1F476}\\u{1F3FB}', '\\u{1F476}\\u{1F3FC}', '\\u{1F476}\\u{1F3FD}', '\\u{1F476}\\u{1F3FE}', '\\u{1F476}\\u{1F3FF}', '\\u{1F477}\\u{1F3FB}', '\\u{1F477}\\u{1F3FC}', '\\u{1F477}\\u{1F3FD}', '\\u{1F477}\\u{1F3FE}', '\\u{1F477}\\u{1F3FF}', '\\u{1F478}\\u{1F3FB}', '\\u{1F478}\\u{1F3FC}', '\\u{1F478}\\u{1F3FD}', '\\u{1F478}\\u{1F3FE}', '\\u{1F478}\\u{1F3FF}', '\\u{1F47C}\\u{1F3FB}', '\\u{1F47C}\\u{1F3FC}', '\\u{1F47C}\\u{1F3FD}', '\\u{1F47C}\\u{1F3FE}', '\\u{1F47C}\\u{1F3FF}', '\\u{1F481}\\u{1F3FB}', '\\u{1F481}\\u{1F3FC}', '\\u{1F481}\\u{1F3FD}', '\\u{1F481}\\u{1F3FE}', '\\u{1F481}\\u{1F3FF}', '\\u{1F482}\\u{1F3FB}', '\\u{1F482}\\u{1F3FC}', '\\u{1F482}\\u{1F3FD}', '\\u{1F482}\\u{1F3FE}', '\\u{1F482}\\u{1F3FF}', '\\u{1F483}\\u{1F3FB}', '\\u{1F483}\\u{1F3FC}', '\\u{1F483}\\u{1F3FD}', '\\u{1F483}\\u{1F3FE}', '\\u{1F483}\\u{1F3FF}', '\\u{1F485}\\u{1F3FB}', '\\u{1F485}\\u{1F3FC}', '\\u{1F485}\\u{1F3FD}', '\\u{1F485}\\u{1F3FE}', '\\u{1F485}\\u{1F3FF}', '\\u{1F486}\\u{1F3FB}', '\\u{1F486}\\u{1F3FC}', '\\u{1F486}\\u{1F3FD}', '\\u{1F486}\\u{1F3FE}', '\\u{1F486}\\u{1F3FF}', '\\u{1F487}\\u{1F3FB}', '\\u{1F487}\\u{1F3FC}', '\\u{1F487}\\u{1F3FD}', '\\u{1F487}\\u{1F3FE}', '\\u{1F487}\\u{1F3FF}', '\\u{1F48F}\\u{1F3FB}', '\\u{1F48F}\\u{1F3FC}', '\\u{1F48F}\\u{1F3FD}', '\\u{1F48F}\\u{1F3FE}', '\\u{1F48F}\\u{1F3FF}', '\\u{1F491}\\u{1F3FB}', '\\u{1F491}\\u{1F3FC}', '\\u{1F491}\\u{1F3FD}', '\\u{1F491}\\u{1F3FE}', '\\u{1F491}\\u{1F3FF}', '\\u{1F4AA}\\u{1F3FB}', '\\u{1F4AA}\\u{1F3FC}', '\\u{1F4AA}\\u{1F3FD}', '\\u{1F4AA}\\u{1F3FE}', '\\u{1F4AA}\\u{1F3FF}', '\\u{1F574}\\u{1F3FB}', '\\u{1F574}\\u{1F3FC}', '\\u{1F574}\\u{1F3FD}', '\\u{1F574}\\u{1F3FE}', '\\u{1F574}\\u{1F3FF}', '\\u{1F575}\\u{1F3FB}', '\\u{1F575}\\u{1F3FC}', '\\u{1F575}\\u{1F3FD}', '\\u{1F575}\\u{1F3FE}', '\\u{1F575}\\u{1F3FF}', '\\u{1F57A}\\u{1F3FB}', '\\u{1F57A}\\u{1F3FC}', '\\u{1F57A}\\u{1F3FD}', '\\u{1F57A}\\u{1F3FE}', '\\u{1F57A}\\u{1F3FF}', '\\u{1F590}\\u{1F3FB}', '\\u{1F590}\\u{1F3FC}', '\\u{1F590}\\u{1F3FD}', '\\u{1F590}\\u{1F3FE}', '\\u{1F590}\\u{1F3FF}', '\\u{1F595}\\u{1F3FB}', '\\u{1F595}\\u{1F3FC}', '\\u{1F595}\\u{1F3FD}', '\\u{1F595}\\u{1F3FE}', '\\u{1F595}\\u{1F3FF}', '\\u{1F596}\\u{1F3FB}', '\\u{1F596}\\u{1F3FC}', '\\u{1F596}\\u{1F3FD}', '\\u{1F596}\\u{1F3FE}', '\\u{1F596}\\u{1F3FF}', '\\u{1F645}\\u{1F3FB}', '\\u{1F645}\\u{1F3FC}', '\\u{1F645}\\u{1F3FD}', '\\u{1F645}\\u{1F3FE}', '\\u{1F645}\\u{1F3FF}', '\\u{1F646}\\u{1F3FB}', '\\u{1F646}\\u{1F3FC}', '\\u{1F646}\\u{1F3FD}', '\\u{1F646}\\u{1F3FE}', '\\u{1F646}\\u{1F3FF}', '\\u{1F647}\\u{1F3FB}', '\\u{1F647}\\u{1F3FC}', '\\u{1F647}\\u{1F3FD}', '\\u{1F647}\\u{1F3FE}', '\\u{1F647}\\u{1F3FF}', '\\u{1F64B}\\u{1F3FB}', '\\u{1F64B}\\u{1F3FC}', '\\u{1F64B}\\u{1F3FD}', '\\u{1F64B}\\u{1F3FE}', '\\u{1F64B}\\u{1F3FF}', '\\u{1F64C}\\u{1F3FB}', '\\u{1F64C}\\u{1F3FC}', '\\u{1F64C}\\u{1F3FD}', '\\u{1F64C}\\u{1F3FE}', '\\u{1F64C}\\u{1F3FF}', '\\u{1F64D}\\u{1F3FB}', '\\u{1F64D}\\u{1F3FC}', '\\u{1F64D}\\u{1F3FD}', '\\u{1F64D}\\u{1F3FE}', '\\u{1F64D}\\u{1F3FF}', '\\u{1F64E}\\u{1F3FB}', '\\u{1F64E}\\u{1F3FC}', '\\u{1F64E}\\u{1F3FD}', '\\u{1F64E}\\u{1F3FE}', '\\u{1F64E}\\u{1F3FF}', '\\u{1F64F}\\u{1F3FB}', '\\u{1F64F}\\u{1F3FC}', '\\u{1F64F}\\u{1F3FD}', '\\u{1F64F}\\u{1F3FE}', '\\u{1F64F}\\u{1F3FF}', '\\u{1F6A3}\\u{1F3FB}', '\\u{1F6A3}\\u{1F3FC}', '\\u{1F6A3}\\u{1F3FD}', '\\u{1F6A3}\\u{1F3FE}', '\\u{1F6A3}\\u{1F3FF}', '\\u{1F6B4}\\u{1F3FB}', '\\u{1F6B4}\\u{1F3FC}', '\\u{1F6B4}\\u{1F3FD}', '\\u{1F6B4}\\u{1F3FE}', '\\u{1F6B4}\\u{1F3FF}', '\\u{1F6B5}\\u{1F3FB}', '\\u{1F6B5}\\u{1F3FC}', '\\u{1F6B5}\\u{1F3FD}', '\\u{1F6B5}\\u{1F3FE}', '\\u{1F6B5}\\u{1F3FF}', '\\u{1F6B6}\\u{1F3FB}', '\\u{1F6B6}\\u{1F3FC}', '\\u{1F6B6}\\u{1F3FD}', '\\u{1F6B6}\\u{1F3FE}', '\\u{1F6B6}\\u{1F3FF}', '\\u{1F6C0}\\u{1F3FB}', '\\u{1F6C0}\\u{1F3FC}', '\\u{1F6C0}\\u{1F3FD}', '\\u{1F6C0}\\u{1F3FE}', '\\u{1F6C0}\\u{1F3FF}', '\\u{1F6CC}\\u{1F3FB}', '\\u{1F6CC}\\u{1F3FC}', '\\u{1F6CC}\\u{1F3FD}', '\\u{1F6CC}\\u{1F3FE}', '\\u{1F6CC}\\u{1F3FF}', '\\u{1F90C}\\u{1F3FB}', '\\u{1F90C}\\u{1F3FC}', '\\u{1F90C}\\u{1F3FD}', '\\u{1F90C}\\u{1F3FE}', '\\u{1F90C}\\u{1F3FF}', '\\u{1F90F}\\u{1F3FB}', '\\u{1F90F}\\u{1F3FC}', '\\u{1F90F}\\u{1F3FD}', '\\u{1F90F}\\u{1F3FE}', '\\u{1F90F}\\u{1F3FF}', '\\u{1F918}\\u{1F3FB}', '\\u{1F918}\\u{1F3FC}', '\\u{1F918}\\u{1F3FD}', '\\u{1F918}\\u{1F3FE}', '\\u{1F918}\\u{1F3FF}', '\\u{1F919}\\u{1F3FB}', '\\u{1F919}\\u{1F3FC}', '\\u{1F919}\\u{1F3FD}', '\\u{1F919}\\u{1F3FE}', '\\u{1F919}\\u{1F3FF}', '\\u{1F91A}\\u{1F3FB}', '\\u{1F91A}\\u{1F3FC}', '\\u{1F91A}\\u{1F3FD}', '\\u{1F91A}\\u{1F3FE}', '\\u{1F91A}\\u{1F3FF}', '\\u{1F91B}\\u{1F3FB}', '\\u{1F91B}\\u{1F3FC}', '\\u{1F91B}\\u{1F3FD}', '\\u{1F91B}\\u{1F3FE}', '\\u{1F91B}\\u{1F3FF}', '\\u{1F91C}\\u{1F3FB}', '\\u{1F91C}\\u{1F3FC}', '\\u{1F91C}\\u{1F3FD}', '\\u{1F91C}\\u{1F3FE}', '\\u{1F91C}\\u{1F3FF}', '\\u{1F91D}\\u{1F3FB}', '\\u{1F91D}\\u{1F3FC}', '\\u{1F91D}\\u{1F3FD}', '\\u{1F91D}\\u{1F3FE}', '\\u{1F91D}\\u{1F3FF}', '\\u{1F91E}\\u{1F3FB}', '\\u{1F91E}\\u{1F3FC}', '\\u{1F91E}\\u{1F3FD}', '\\u{1F91E}\\u{1F3FE}', '\\u{1F91E}\\u{1F3FF}', '\\u{1F91F}\\u{1F3FB}', '\\u{1F91F}\\u{1F3FC}', '\\u{1F91F}\\u{1F3FD}', '\\u{1F91F}\\u{1F3FE}', '\\u{1F91F}\\u{1F3FF}', '\\u{1F926}\\u{1F3FB}', '\\u{1F926}\\u{1F3FC}', '\\u{1F926}\\u{1F3FD}', '\\u{1F926}\\u{1F3FE}', '\\u{1F926}\\u{1F3FF}', '\\u{1F930}\\u{1F3FB}', '\\u{1F930}\\u{1F3FC}', '\\u{1F930}\\u{1F3FD}', '\\u{1F930}\\u{1F3FE}', '\\u{1F930}\\u{1F3FF}', '\\u{1F931}\\u{1F3FB}', '\\u{1F931}\\u{1F3FC}', '\\u{1F931}\\u{1F3FD}', '\\u{1F931}\\u{1F3FE}', '\\u{1F931}\\u{1F3FF}', '\\u{1F932}\\u{1F3FB}', '\\u{1F932}\\u{1F3FC}', '\\u{1F932}\\u{1F3FD}', '\\u{1F932}\\u{1F3FE}', '\\u{1F932}\\u{1F3FF}', '\\u{1F933}\\u{1F3FB}', '\\u{1F933}\\u{1F3FC}', '\\u{1F933}\\u{1F3FD}', '\\u{1F933}\\u{1F3FE}', '\\u{1F933}\\u{1F3FF}', '\\u{1F934}\\u{1F3FB}', '\\u{1F934}\\u{1F3FC}', '\\u{1F934}\\u{1F3FD}', '\\u{1F934}\\u{1F3FE}', '\\u{1F934}\\u{1F3FF}', '\\u{1F935}\\u{1F3FB}', '\\u{1F935}\\u{1F3FC}', '\\u{1F935}\\u{1F3FD}', '\\u{1F935}\\u{1F3FE}', '\\u{1F935}\\u{1F3FF}', '\\u{1F936}\\u{1F3FB}', '\\u{1F936}\\u{1F3FC}', '\\u{1F936}\\u{1F3FD}', '\\u{1F936}\\u{1F3FE}', '\\u{1F936}\\u{1F3FF}', '\\u{1F937}\\u{1F3FB}', '\\u{1F937}\\u{1F3FC}', '\\u{1F937}\\u{1F3FD}', '\\u{1F937}\\u{1F3FE}', '\\u{1F937}\\u{1F3FF}', '\\u{1F938}\\u{1F3FB}', '\\u{1F938}\\u{1F3FC}', '\\u{1F938}\\u{1F3FD}', '\\u{1F938}\\u{1F3FE}', '\\u{1F938}\\u{1F3FF}', '\\u{1F939}\\u{1F3FB}', '\\u{1F939}\\u{1F3FC}', '\\u{1F939}\\u{1F3FD}', '\\u{1F939}\\u{1F3FE}', '\\u{1F939}\\u{1F3FF}', '\\u{1F93D}\\u{1F3FB}', '\\u{1F93D}\\u{1F3FC}', '\\u{1F93D}\\u{1F3FD}', '\\u{1F93D}\\u{1F3FE}', '\\u{1F93D}\\u{1F3FF}', '\\u{1F93E}\\u{1F3FB}', '\\u{1F93E}\\u{1F3FC}', '\\u{1F93E}\\u{1F3FD}', '\\u{1F93E}\\u{1F3FE}', '\\u{1F93E}\\u{1F3FF}', '\\u{1F977}\\u{1F3FB}', '\\u{1F977}\\u{1F3FC}', '\\u{1F977}\\u{1F3FD}', '\\u{1F977}\\u{1F3FE}', '\\u{1F977}\\u{1F3FF}', '\\u{1F9B5}\\u{1F3FB}', '\\u{1F9B5}\\u{1F3FC}', '\\u{1F9B5}\\u{1F3FD}', '\\u{1F9B5}\\u{1F3FE}', '\\u{1F9B5}\\u{1F3FF}', '\\u{1F9B6}\\u{1F3FB}', '\\u{1F9B6}\\u{1F3FC}', '\\u{1F9B6}\\u{1F3FD}', '\\u{1F9B6}\\u{1F3FE}', '\\u{1F9B6}\\u{1F3FF}', '\\u{1F9B8}\\u{1F3FB}', '\\u{1F9B8}\\u{1F3FC}', '\\u{1F9B8}\\u{1F3FD}', '\\u{1F9B8}\\u{1F3FE}', '\\u{1F9B8}\\u{1F3FF}', '\\u{1F9B9}\\u{1F3FB}', '\\u{1F9B9}\\u{1F3FC}', '\\u{1F9B9}\\u{1F3FD}', '\\u{1F9B9}\\u{1F3FE}', '\\u{1F9B9}\\u{1F3FF}', '\\u{1F9BB}\\u{1F3FB}', '\\u{1F9BB}\\u{1F3FC}', '\\u{1F9BB}\\u{1F3FD}', '\\u{1F9BB}\\u{1F3FE}', '\\u{1F9BB}\\u{1F3FF}', '\\u{1F9CD}\\u{1F3FB}', '\\u{1F9CD}\\u{1F3FC}', '\\u{1F9CD}\\u{1F3FD}', '\\u{1F9CD}\\u{1F3FE}', '\\u{1F9CD}\\u{1F3FF}', '\\u{1F9CE}\\u{1F3FB}', '\\u{1F9CE}\\u{1F3FC}', '\\u{1F9CE}\\u{1F3FD}', '\\u{1F9CE}\\u{1F3FE}', '\\u{1F9CE}\\u{1F3FF}', '\\u{1F9CF}\\u{1F3FB}', '\\u{1F9CF}\\u{1F3FC}', '\\u{1F9CF}\\u{1F3FD}', '\\u{1F9CF}\\u{1F3FE}', '\\u{1F9CF}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D2}\\u{1F3FB}', '\\u{1F9D2}\\u{1F3FC}', '\\u{1F9D2}\\u{1F3FD}', '\\u{1F9D2}\\u{1F3FE}', '\\u{1F9D2}\\u{1F3FF}', '\\u{1F9D3}\\u{1F3FB}', '\\u{1F9D3}\\u{1F3FC}', '\\u{1F9D3}\\u{1F3FD}', '\\u{1F9D3}\\u{1F3FE}', '\\u{1F9D3}\\u{1F3FF}', '\\u{1F9D4}\\u{1F3FB}', '\\u{1F9D4}\\u{1F3FC}', '\\u{1F9D4}\\u{1F3FD}', '\\u{1F9D4}\\u{1F3FE}', '\\u{1F9D4}\\u{1F3FF}', '\\u{1F9D5}\\u{1F3FB}', '\\u{1F9D5}\\u{1F3FC}', '\\u{1F9D5}\\u{1F3FD}', '\\u{1F9D5}\\u{1F3FE}', '\\u{1F9D5}\\u{1F3FF}', '\\u{1F9D6}\\u{1F3FB}', '\\u{1F9D6}\\u{1F3FC}', '\\u{1F9D6}\\u{1F3FD}', '\\u{1F9D6}\\u{1F3FE}', '\\u{1F9D6}\\u{1F3FF}', '\\u{1F9D7}\\u{1F3FB}', '\\u{1F9D7}\\u{1F3FC}', '\\u{1F9D7}\\u{1F3FD}', '\\u{1F9D7}\\u{1F3FE}', '\\u{1F9D7}\\u{1F3FF}', '\\u{1F9D8}\\u{1F3FB}', '\\u{1F9D8}\\u{1F3FC}', '\\u{1F9D8}\\u{1F3FD}', '\\u{1F9D8}\\u{1F3FE}', '\\u{1F9D8}\\u{1F3FF}', '\\u{1F9D9}\\u{1F3FB}', '\\u{1F9D9}\\u{1F3FC}', '\\u{1F9D9}\\u{1F3FD}', '\\u{1F9D9}\\u{1F3FE}', '\\u{1F9D9}\\u{1F3FF}', '\\u{1F9DA}\\u{1F3FB}', '\\u{1F9DA}\\u{1F3FC}', '\\u{1F9DA}\\u{1F3FD}', '\\u{1F9DA}\\u{1F3FE}', '\\u{1F9DA}\\u{1F3FF}', '\\u{1F9DB}\\u{1F3FB}', '\\u{1F9DB}\\u{1F3FC}', '\\u{1F9DB}\\u{1F3FD}', '\\u{1F9DB}\\u{1F3FE}', '\\u{1F9DB}\\u{1F3FF}', '\\u{1F9DC}\\u{1F3FB}', '\\u{1F9DC}\\u{1F3FC}', '\\u{1F9DC}\\u{1F3FD}', '\\u{1F9DC}\\u{1F3FE}', '\\u{1F9DC}\\u{1F3FF}', '\\u{1F9DD}\\u{1F3FB}', '\\u{1F9DD}\\u{1F3FC}', '\\u{1F9DD}\\u{1F3FD}', '\\u{1F9DD}\\u{1F3FE}', '\\u{1F9DD}\\u{1F3FF}', '\\u{1FAC3}\\u{1F3FB}', '\\u{1FAC3}\\u{1F3FC}', '\\u{1FAC3}\\u{1F3FD}', '\\u{1FAC3}\\u{1F3FE}', '\\u{1FAC3}\\u{1F3FF}', '\\u{1FAC4}\\u{1F3FB}', '\\u{1FAC4}\\u{1F3FC}', '\\u{1FAC4}\\u{1F3FD}', '\\u{1FAC4}\\u{1F3FE}', '\\u{1FAC4}\\u{1F3FF}', '\\u{1FAC5}\\u{1F3FB}', '\\u{1FAC5}\\u{1F3FC}', '\\u{1FAC5}\\u{1F3FD}', '\\u{1FAC5}\\u{1F3FE}', '\\u{1FAC5}\\u{1F3FF}', '\\u{1FAF0}\\u{1F3FB}', '\\u{1FAF0}\\u{1F3FC}', '\\u{1FAF0}\\u{1F3FD}', '\\u{1FAF0}\\u{1F3FE}', '\\u{1FAF0}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FF}', '\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF3}\\u{1F3FB}', '\\u{1FAF3}\\u{1F3FC}', '\\u{1FAF3}\\u{1F3FD}', '\\u{1FAF3}\\u{1F3FE}', '\\u{1FAF3}\\u{1F3FF}', '\\u{1FAF4}\\u{1F3FB}', '\\u{1FAF4}\\u{1F3FC}', '\\u{1FAF4}\\u{1F3FD}', '\\u{1FAF4}\\u{1F3FE}', '\\u{1FAF4}\\u{1F3FF}', '\\u{1FAF5}\\u{1F3FB}', '\\u{1FAF5}\\u{1F3FC}', '\\u{1FAF5}\\u{1F3FD}', '\\u{1FAF5}\\u{1F3FE}', '\\u{1FAF5}\\u{1F3FF}', '\\u{1FAF6}\\u{1F3FB}', '\\u{1FAF6}\\u{1F3FC}', '\\u{1FAF6}\\u{1F3FD}', '\\u{1FAF6}\\u{1F3FE}', '\\u{1FAF6}\\u{1F3FF}', '\\u{1FAF7}\\u{1F3FB}', '\\u{1FAF7}\\u{1F3FC}', '\\u{1FAF7}\\u{1F3FD}', '\\u{1FAF7}\\u{1F3FE}', '\\u{1FAF7}\\u{1F3FF}', '\\u{1FAF8}\\u{1F3FB}', '\\u{1FAF8}\\u{1F3FC}', '\\u{1FAF8}\\u{1F3FD}', '\\u{1FAF8}\\u{1F3FE}', '\\u{1FAF8}\\u{1F3FF}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0065}\\u{E006E}\\u{E0067}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0073}\\u{E0063}\\u{E0074}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0077}\\u{E006C}\\u{E0073}\\u{E007F}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F9D1}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1F468}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u200D\\u{1F33E}', '\\u{1F468}\\u200D\\u{1F373}', '\\u{1F468}\\u200D\\u{1F37C}', '\\u{1F468}\\u200D\\u{1F393}', '\\u{1F468}\\u200D\\u{1F3A4}', '\\u{1F468}\\u200D\\u{1F3A8}', '\\u{1F468}\\u200D\\u{1F3EB}', '\\u{1F468}\\u200D\\u{1F3ED}', '\\u{1F468}\\u200D\\u{1F4BB}', '\\u{1F468}\\u200D\\u{1F4BC}', '\\u{1F468}\\u200D\\u{1F527}', '\\u{1F468}\\u200D\\u{1F52C}', '\\u{1F468}\\u200D\\u{1F680}', '\\u{1F468}\\u200D\\u{1F692}', '\\u{1F468}\\u200D\\u{1F9AF}', '\\u{1F468}\\u200D\\u{1F9BC}', '\\u{1F468}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F469}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u200D\\u{1F33E}', '\\u{1F469}\\u200D\\u{1F373}', '\\u{1F469}\\u200D\\u{1F37C}', '\\u{1F469}\\u200D\\u{1F393}', '\\u{1F469}\\u200D\\u{1F3A4}', '\\u{1F469}\\u200D\\u{1F3A8}', '\\u{1F469}\\u200D\\u{1F3EB}', '\\u{1F469}\\u200D\\u{1F3ED}', '\\u{1F469}\\u200D\\u{1F4BB}', '\\u{1F469}\\u200D\\u{1F4BC}', '\\u{1F469}\\u200D\\u{1F527}', '\\u{1F469}\\u200D\\u{1F52C}', '\\u{1F469}\\u200D\\u{1F680}', '\\u{1F469}\\u200D\\u{1F692}', '\\u{1F469}\\u200D\\u{1F9AF}', '\\u{1F469}\\u200D\\u{1F9BC}', '\\u{1F469}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u200D\\u{1F373}', '\\u{1F9D1}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u200D\\u{1F393}', '\\u{1F9D1}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u200D\\u{1F527}', '\\u{1F9D1}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u200D\\u{1F680}', '\\u{1F9D1}\\u200D\\u{1F692}', '\\u{1F9D1}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u26F9\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2640\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F46F}\\u200D\\u2640\\uFE0F', '\\u{1F46F}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93C}\\u200D\\u2640\\uFE0F', '\\u{1F93C}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DE}\\u200D\\u2640\\uFE0F', '\\u{1F9DE}\\u200D\\u2642\\uFE0F', '\\u{1F9DF}\\u200D\\u2640\\uFE0F', '\\u{1F9DF}\\u200D\\u2642\\uFE0F', '\\u{1F468}\\u200D\\u{1F9B0}', '\\u{1F468}\\u200D\\u{1F9B1}', '\\u{1F468}\\u200D\\u{1F9B2}', '\\u{1F468}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F469}\\u200D\\u{1F9B0}', '\\u{1F469}\\u200D\\u{1F9B1}', '\\u{1F469}\\u200D\\u{1F9B2}', '\\u{1F469}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u2764\\uFE0F\\u200D\\u{1F525}', '\\u2764\\uFE0F\\u200D\\u{1FA79}', '\\u{1F3F3}\\uFE0F\\u200D\\u26A7\\uFE0F', '\\u{1F3F3}\\uFE0F\\u200D\\u{1F308}', '\\u{1F3F4}\\u200D\\u2620\\uFE0F', '\\u{1F408}\\u200D\\u2B1B', '\\u{1F415}\\u200D\\u{1F9BA}', '\\u{1F426}\\u200D\\u2B1B', '\\u{1F43B}\\u200D\\u2744\\uFE0F', '\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F', '\\u{1F62E}\\u200D\\u{1F4A8}', '\\u{1F635}\\u200D\\u{1F4AB}', '\\u{1F636}\\u200D\\u{1F32B}\\uFE0F', '\\u{1F9D1}\\u200D\\u{1F384}'];","const set = require('regenerate')();\n\nset.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59);\nexports.characters = set;","const set = require('regenerate')();\n\nset.addRange(0x1E4D0, 0x1E4F9);\nexports.characters = set;","const set = require('regenerate')();\n\nset.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59);\nexports.characters = set;","const set = require('regenerate')();\n\nset.addRange(0x1E4D0, 0x1E4F9);\nexports.characters = set;","/*! https://mths.be/regenerate v1.4.2 by @mathias | MIT license */\n;\n\n(function (root) {\n // Detect free variables `exports`.\n var freeExports = typeof exports == 'object' && exports; // Detect free variable `module`.\n\n var freeModule = typeof module == 'object' && module && module.exports == freeExports && module; // Detect free variable `global`, from Node.js/io.js or Browserified code,\n // and use it as `root`.\n\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n root = freeGlobal;\n }\n /*--------------------------------------------------------------------------*/\n\n\n var ERRORS = {\n 'rangeOrder': 'A range\\u2019s `stop` value must be greater than or equal ' + 'to the `start` value.',\n 'codePointRange': 'Invalid code point value. Code points range from ' + 'U+000000 to U+10FFFF.'\n }; // https://mathiasbynens.be/notes/javascript-encoding#surrogate-pairs\n\n var HIGH_SURROGATE_MIN = 0xD800;\n var HIGH_SURROGATE_MAX = 0xDBFF;\n var LOW_SURROGATE_MIN = 0xDC00;\n var LOW_SURROGATE_MAX = 0xDFFF; // In Regenerate output, `\\0` is never preceded by `\\` because we sort by\n // code point value, so let’s keep this regular expression simple.\n\n var regexNull = /\\\\x00([^0123456789]|$)/g;\n var object = {};\n var hasOwnProperty = object.hasOwnProperty;\n\n var extend = function (destination, source) {\n var key;\n\n for (key in source) {\n if (hasOwnProperty.call(source, key)) {\n destination[key] = source[key];\n }\n }\n\n return destination;\n };\n\n var forEach = function (array, callback) {\n var index = -1;\n var length = array.length;\n\n while (++index < length) {\n callback(array[index], index);\n }\n };\n\n var toString = object.toString;\n\n var isArray = function (value) {\n return toString.call(value) == '[object Array]';\n };\n\n var isNumber = function (value) {\n return typeof value == 'number' || toString.call(value) == '[object Number]';\n }; // This assumes that `number` is a positive integer that `toString()`s nicely\n // (which is the case for all code point values).\n\n\n var zeroes = '0000';\n\n var pad = function (number, totalCharacters) {\n var string = String(number);\n return string.length < totalCharacters ? (zeroes + string).slice(-totalCharacters) : string;\n };\n\n var hex = function (number) {\n return Number(number).toString(16).toUpperCase();\n };\n\n var slice = [].slice;\n /*--------------------------------------------------------------------------*/\n\n var dataFromCodePoints = function (codePoints) {\n var index = -1;\n var length = codePoints.length;\n var max = length - 1;\n var result = [];\n var isStart = true;\n var tmp;\n var previous = 0;\n\n while (++index < length) {\n tmp = codePoints[index];\n\n if (isStart) {\n result.push(tmp);\n previous = tmp;\n isStart = false;\n } else {\n if (tmp == previous + 1) {\n if (index != max) {\n previous = tmp;\n continue;\n } else {\n isStart = true;\n result.push(tmp + 1);\n }\n } else {\n // End the previous range and start a new one.\n result.push(previous + 1, tmp);\n previous = tmp;\n }\n }\n }\n\n if (!isStart) {\n result.push(tmp + 1);\n }\n\n return result;\n };\n\n var dataRemove = function (data, codePoint) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n if (codePoint >= start && codePoint < end) {\n // Modify this pair.\n if (codePoint == start) {\n if (end == start + 1) {\n // Just remove `start` and `end`.\n data.splice(index, 2);\n return data;\n } else {\n // Just replace `start` with a new value.\n data[index] = codePoint + 1;\n return data;\n }\n } else if (codePoint == end - 1) {\n // Just replace `end` with a new value.\n data[index + 1] = codePoint;\n return data;\n } else {\n // Replace `[start, end]` with `[startA, endA, startB, endB]`.\n data.splice(index, 2, start, codePoint, codePoint + 1, end);\n return data;\n }\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataRemoveRange = function (data, rangeStart, rangeEnd) {\n if (rangeEnd < rangeStart) {\n throw Error(ERRORS.rangeOrder);\n } // Iterate over the data per `(start, end)` pair.\n\n\n var index = 0;\n var start;\n var end;\n\n while (index < data.length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n // Exit as soon as no more matching pairs can be found.\n\n if (start > rangeEnd) {\n return data;\n } // Check if this range pair is equal to, or forms a subset of, the range\n // to be removed.\n // E.g. we have `[0, 11, 40, 51]` and want to remove 0-10 → `[40, 51]`.\n // E.g. we have `[40, 51]` and want to remove 0-100 → `[]`.\n\n\n if (rangeStart <= start && rangeEnd >= end) {\n // Remove this pair.\n data.splice(index, 2);\n continue;\n } // Check if both `rangeStart` and `rangeEnd` are within the bounds of\n // this pair.\n // E.g. we have `[0, 11]` and want to remove 4-6 → `[0, 4, 7, 11]`.\n\n\n if (rangeStart >= start && rangeEnd < end) {\n if (rangeStart == start) {\n // Replace `[start, end]` with `[startB, endB]`.\n data[index] = rangeEnd + 1;\n data[index + 1] = end + 1;\n return data;\n } // Replace `[start, end]` with `[startA, endA, startB, endB]`.\n\n\n data.splice(index, 2, start, rangeStart, rangeEnd + 1, end + 1);\n return data;\n } // Check if only `rangeStart` is within the bounds of this pair.\n // E.g. we have `[0, 11]` and want to remove 4-20 → `[0, 4]`.\n\n\n if (rangeStart >= start && rangeStart <= end) {\n // Replace `end` with `rangeStart`.\n data[index + 1] = rangeStart; // Note: we cannot `return` just yet, in case any following pairs still\n // contain matching code points.\n // E.g. we have `[0, 11, 14, 31]` and want to remove 4-20\n // → `[0, 4, 21, 31]`.\n } // Check if only `rangeEnd` is within the bounds of this pair.\n // E.g. we have `[14, 31]` and want to remove 4-20 → `[21, 31]`.\n else if (rangeEnd >= start && rangeEnd <= end) {\n // Just replace `start`.\n data[index] = rangeEnd + 1;\n return data;\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataAdd = function (data, codePoint) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var lastIndex = null;\n var length = data.length;\n\n if (codePoint < 0x0 || codePoint > 0x10FFFF) {\n throw RangeError(ERRORS.codePointRange);\n }\n\n while (index < length) {\n start = data[index];\n end = data[index + 1]; // Check if the code point is already in the set.\n\n if (codePoint >= start && codePoint < end) {\n return data;\n }\n\n if (codePoint == start - 1) {\n // Just replace `start` with a new value.\n data[index] = codePoint;\n return data;\n } // At this point, if `start` is `greater` than `codePoint`, insert a new\n // `[start, end]` pair before the current pair, or after the current pair\n // if there is a known `lastIndex`.\n\n\n if (start > codePoint) {\n data.splice(lastIndex != null ? lastIndex + 2 : 0, 0, codePoint, codePoint + 1);\n return data;\n }\n\n if (codePoint == end) {\n // Check if adding this code point causes two separate ranges to become\n // a single range, e.g. `dataAdd([0, 4, 5, 10], 4)` → `[0, 10]`.\n if (codePoint + 1 == data[index + 2]) {\n data.splice(index, 4, start, data[index + 3]);\n return data;\n } // Else, just replace `end` with a new value.\n\n\n data[index + 1] = codePoint + 1;\n return data;\n }\n\n lastIndex = index;\n index += 2;\n } // The loop has finished; add the new pair to the end of the data set.\n\n\n data.push(codePoint, codePoint + 1);\n return data;\n };\n\n var dataAddData = function (dataA, dataB) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var data = dataA.slice();\n var length = dataB.length;\n\n while (index < length) {\n start = dataB[index];\n end = dataB[index + 1] - 1;\n\n if (start == end) {\n data = dataAdd(data, start);\n } else {\n data = dataAddRange(data, start, end);\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataRemoveData = function (dataA, dataB) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var data = dataA.slice();\n var length = dataB.length;\n\n while (index < length) {\n start = dataB[index];\n end = dataB[index + 1] - 1;\n\n if (start == end) {\n data = dataRemove(data, start);\n } else {\n data = dataRemoveRange(data, start, end);\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataAddRange = function (data, rangeStart, rangeEnd) {\n if (rangeEnd < rangeStart) {\n throw Error(ERRORS.rangeOrder);\n }\n\n if (rangeStart < 0x0 || rangeStart > 0x10FFFF || rangeEnd < 0x0 || rangeEnd > 0x10FFFF) {\n throw RangeError(ERRORS.codePointRange);\n } // Iterate over the data per `(start, end)` pair.\n\n\n var index = 0;\n var start;\n var end;\n var added = false;\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n if (added) {\n // The range has already been added to the set; at this point, we just\n // need to get rid of the following ranges in case they overlap.\n // Check if this range can be combined with the previous range.\n if (start == rangeEnd + 1) {\n data.splice(index - 1, 2);\n return data;\n } // Exit as soon as no more possibly overlapping pairs can be found.\n\n\n if (start > rangeEnd) {\n return data;\n } // E.g. `[0, 11, 12, 16]` and we’ve added 5-15, so we now have\n // `[0, 16, 12, 16]`. Remove the `12,16` part, as it lies within the\n // `0,16` range that was previously added.\n\n\n if (start >= rangeStart && start <= rangeEnd) {\n // `start` lies within the range that was previously added.\n if (end > rangeStart && end - 1 <= rangeEnd) {\n // `end` lies within the range that was previously added as well,\n // so remove this pair.\n data.splice(index, 2);\n index -= 2; // Note: we cannot `return` just yet, as there may still be other\n // overlapping pairs.\n } else {\n // `start` lies within the range that was previously added, but\n // `end` doesn’t. E.g. `[0, 11, 12, 31]` and we’ve added 5-15, so\n // now we have `[0, 16, 12, 31]`. This must be written as `[0, 31]`.\n // Remove the previously added `end` and the current `start`.\n data.splice(index - 1, 2);\n index -= 2;\n } // Note: we cannot return yet.\n\n }\n } else if (start == rangeEnd + 1 || start == rangeEnd) {\n data[index] = rangeStart;\n return data;\n } // Check if a new pair must be inserted *before* the current one.\n else if (start > rangeEnd) {\n data.splice(index, 0, rangeStart, rangeEnd + 1);\n return data;\n } else if (rangeStart >= start && rangeStart < end && rangeEnd + 1 <= end) {\n // The new range lies entirely within an existing range pair. No action\n // needed.\n return data;\n } else if ( // E.g. `[0, 11]` and you add 5-15 → `[0, 16]`.\n rangeStart >= start && rangeStart < end || // E.g. `[0, 3]` and you add 3-6 → `[0, 7]`.\n end == rangeStart) {\n // Replace `end` with the new value.\n data[index + 1] = rangeEnd + 1; // Make sure the next range pair doesn’t overlap, e.g. `[0, 11, 12, 14]`\n // and you add 5-15 → `[0, 16]`, i.e. remove the `12,14` part.\n\n added = true; // Note: we cannot `return` just yet.\n } else if (rangeStart <= start && rangeEnd + 1 >= end) {\n // The new range is a superset of the old range.\n data[index] = rangeStart;\n data[index + 1] = rangeEnd + 1;\n added = true;\n }\n\n index += 2;\n } // The loop has finished without doing anything; add the new pair to the end\n // of the data set.\n\n\n if (!added) {\n data.push(rangeStart, rangeEnd + 1);\n }\n\n return data;\n };\n\n var dataContains = function (data, codePoint) {\n var index = 0;\n var length = data.length; // Exit early if `codePoint` is not within `data`’s overall range.\n\n var start = data[index];\n var end = data[length - 1];\n\n if (length >= 2) {\n if (codePoint < start || codePoint > end) {\n return false;\n }\n } // Iterate over the data per `(start, end)` pair.\n\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n if (codePoint >= start && codePoint < end) {\n return true;\n }\n\n index += 2;\n }\n\n return false;\n };\n\n var dataIntersection = function (data, codePoints) {\n var index = 0;\n var length = codePoints.length;\n var codePoint;\n var result = [];\n\n while (index < length) {\n codePoint = codePoints[index];\n\n if (dataContains(data, codePoint)) {\n result.push(codePoint);\n }\n\n ++index;\n }\n\n return dataFromCodePoints(result);\n };\n\n var dataIsEmpty = function (data) {\n return !data.length;\n };\n\n var dataIsSingleton = function (data) {\n // Check if the set only represents a single code point.\n return data.length == 2 && data[0] + 1 == data[1];\n };\n\n var dataToArray = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var result = [];\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n while (start < end) {\n result.push(start);\n ++start;\n }\n\n index += 2;\n }\n\n return result;\n };\n /*--------------------------------------------------------------------------*/\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\n\n var floor = Math.floor;\n\n var highSurrogate = function (codePoint) {\n return parseInt(floor((codePoint - 0x10000) / 0x400) + HIGH_SURROGATE_MIN, 10);\n };\n\n var lowSurrogate = function (codePoint) {\n return parseInt((codePoint - 0x10000) % 0x400 + LOW_SURROGATE_MIN, 10);\n };\n\n var stringFromCharCode = String.fromCharCode;\n\n var codePointToString = function (codePoint) {\n var string; // https://mathiasbynens.be/notes/javascript-escapes#single\n // Note: the `\\b` escape sequence for U+0008 BACKSPACE in strings has a\n // different meaning in regular expressions (word boundary), so it cannot\n // be used here.\n\n if (codePoint == 0x09) {\n string = '\\\\t';\n } // Note: IE < 9 treats `'\\v'` as `'v'`, so avoid using it.\n // else if (codePoint == 0x0B) {\n // \tstring = '\\\\v';\n // }\n else if (codePoint == 0x0A) {\n string = '\\\\n';\n } else if (codePoint == 0x0C) {\n string = '\\\\f';\n } else if (codePoint == 0x0D) {\n string = '\\\\r';\n } else if (codePoint == 0x2D) {\n // https://mathiasbynens.be/notes/javascript-escapes#hexadecimal\n // Note: `-` (U+002D HYPHEN-MINUS) is escaped in this way rather\n // than by backslash-escaping, in case the output is used outside\n // of a character class in a `u` RegExp. /\\-/u throws, but\n // /\\x2D/u is fine.\n string = '\\\\x2D';\n } else if (codePoint == 0x5C) {\n string = '\\\\\\\\';\n } else if (codePoint == 0x24 || codePoint >= 0x28 && codePoint <= 0x2B || codePoint == 0x2E || codePoint == 0x2F || codePoint == 0x3F || codePoint >= 0x5B && codePoint <= 0x5E || codePoint >= 0x7B && codePoint <= 0x7D) {\n // The code point maps to an unsafe printable ASCII character;\n // backslash-escape it. Here’s the list of those symbols:\n //\n // $()*+./?[\\]^{|}\n //\n // This matches SyntaxCharacters as well as `/` (U+002F SOLIDUS).\n // https://tc39.github.io/ecma262/#prod-SyntaxCharacter\n string = '\\\\' + stringFromCharCode(codePoint);\n } else if (codePoint >= 0x20 && codePoint <= 0x7E) {\n // The code point maps to one of these printable ASCII symbols\n // (including the space character):\n //\n // !\"#%&',/0123456789:;<=>@ABCDEFGHIJKLMNO\n // PQRSTUVWXYZ_`abcdefghijklmnopqrstuvwxyz~\n //\n // These can safely be used directly.\n string = stringFromCharCode(codePoint);\n } else if (codePoint <= 0xFF) {\n string = '\\\\x' + pad(hex(codePoint), 2);\n } else {\n // `codePoint <= 0xFFFF` holds true.\n // https://mathiasbynens.be/notes/javascript-escapes#unicode\n string = '\\\\u' + pad(hex(codePoint), 4);\n } // There’s no need to account for astral symbols / surrogate pairs here,\n // since `codePointToString` is private and only used for BMP code points.\n // But if that’s what you need, just add an `else` block with this code:\n //\n // string = '\\\\u' + pad(hex(highSurrogate(codePoint)), 4)\n // \t+ '\\\\u' + pad(hex(lowSurrogate(codePoint)), 4);\n\n\n return string;\n };\n\n var codePointToStringUnicode = function (codePoint) {\n if (codePoint <= 0xFFFF) {\n return codePointToString(codePoint);\n }\n\n return '\\\\u{' + codePoint.toString(16).toUpperCase() + '}';\n };\n\n var symbolToCodePoint = function (symbol) {\n var length = symbol.length;\n var first = symbol.charCodeAt(0);\n var second;\n\n if (first >= HIGH_SURROGATE_MIN && first <= HIGH_SURROGATE_MAX && length > 1 // There is a next code unit.\n ) {\n // `first` is a high surrogate, and there is a next character. Assume\n // it’s a low surrogate (else it’s invalid usage of Regenerate anyway).\n second = symbol.charCodeAt(1); // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\n return (first - HIGH_SURROGATE_MIN) * 0x400 + second - LOW_SURROGATE_MIN + 0x10000;\n }\n\n return first;\n };\n\n var createBMPCharacterClasses = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var result = '';\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n if (dataIsSingleton(data)) {\n return codePointToString(data[0]);\n }\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n if (start == end) {\n result += codePointToString(start);\n } else if (start + 1 == end) {\n result += codePointToString(start) + codePointToString(end);\n } else {\n result += codePointToString(start) + '-' + codePointToString(end);\n }\n\n index += 2;\n }\n\n return '[' + result + ']';\n };\n\n var createUnicodeCharacterClasses = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var result = '';\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n if (dataIsSingleton(data)) {\n return codePointToStringUnicode(data[0]);\n }\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n if (start == end) {\n result += codePointToStringUnicode(start);\n } else if (start + 1 == end) {\n result += codePointToStringUnicode(start) + codePointToStringUnicode(end);\n } else {\n result += codePointToStringUnicode(start) + '-' + codePointToStringUnicode(end);\n }\n\n index += 2;\n }\n\n return '[' + result + ']';\n };\n\n var splitAtBMP = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var loneHighSurrogates = [];\n var loneLowSurrogates = [];\n var bmp = [];\n var astral = [];\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n if (start < HIGH_SURROGATE_MIN) {\n // The range starts and ends before the high surrogate range.\n // E.g. (0, 0x10).\n if (end < HIGH_SURROGATE_MIN) {\n bmp.push(start, end + 1);\n } // The range starts before the high surrogate range and ends within it.\n // E.g. (0, 0xD855).\n\n\n if (end >= HIGH_SURROGATE_MIN && end <= HIGH_SURROGATE_MAX) {\n bmp.push(start, HIGH_SURROGATE_MIN);\n loneHighSurrogates.push(HIGH_SURROGATE_MIN, end + 1);\n } // The range starts before the high surrogate range and ends in the low\n // surrogate range. E.g. (0, 0xDCFF).\n\n\n if (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n bmp.push(start, HIGH_SURROGATE_MIN);\n loneHighSurrogates.push(HIGH_SURROGATE_MIN, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, end + 1);\n } // The range starts before the high surrogate range and ends after the\n // low surrogate range. E.g. (0, 0x10FFFF).\n\n\n if (end > LOW_SURROGATE_MAX) {\n bmp.push(start, HIGH_SURROGATE_MIN);\n loneHighSurrogates.push(HIGH_SURROGATE_MIN, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1);\n\n if (end <= 0xFFFF) {\n bmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n } else {\n bmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n }\n } else if (start >= HIGH_SURROGATE_MIN && start <= HIGH_SURROGATE_MAX) {\n // The range starts and ends in the high surrogate range.\n // E.g. (0xD855, 0xD866).\n if (end >= HIGH_SURROGATE_MIN && end <= HIGH_SURROGATE_MAX) {\n loneHighSurrogates.push(start, end + 1);\n } // The range starts in the high surrogate range and ends in the low\n // surrogate range. E.g. (0xD855, 0xDCFF).\n\n\n if (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n loneHighSurrogates.push(start, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, end + 1);\n } // The range starts in the high surrogate range and ends after the low\n // surrogate range. E.g. (0xD855, 0x10FFFF).\n\n\n if (end > LOW_SURROGATE_MAX) {\n loneHighSurrogates.push(start, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1);\n\n if (end <= 0xFFFF) {\n bmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n } else {\n bmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n }\n } else if (start >= LOW_SURROGATE_MIN && start <= LOW_SURROGATE_MAX) {\n // The range starts and ends in the low surrogate range.\n // E.g. (0xDCFF, 0xDDFF).\n if (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n loneLowSurrogates.push(start, end + 1);\n } // The range starts in the low surrogate range and ends after the low\n // surrogate range. E.g. (0xDCFF, 0x10FFFF).\n\n\n if (end > LOW_SURROGATE_MAX) {\n loneLowSurrogates.push(start, LOW_SURROGATE_MAX + 1);\n\n if (end <= 0xFFFF) {\n bmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n } else {\n bmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n }\n } else if (start > LOW_SURROGATE_MAX && start <= 0xFFFF) {\n // The range starts and ends after the low surrogate range.\n // E.g. (0xFFAA, 0x10FFFF).\n if (end <= 0xFFFF) {\n bmp.push(start, end + 1);\n } else {\n bmp.push(start, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n } else {\n // The range starts and ends in the astral range.\n astral.push(start, end + 1);\n }\n\n index += 2;\n }\n\n return {\n 'loneHighSurrogates': loneHighSurrogates,\n 'loneLowSurrogates': loneLowSurrogates,\n 'bmp': bmp,\n 'astral': astral\n };\n };\n\n var optimizeSurrogateMappings = function (surrogateMappings) {\n var result = [];\n var tmpLow = [];\n var addLow = false;\n var mapping;\n var nextMapping;\n var highSurrogates;\n var lowSurrogates;\n var nextHighSurrogates;\n var nextLowSurrogates;\n var index = -1;\n var length = surrogateMappings.length;\n\n while (++index < length) {\n mapping = surrogateMappings[index];\n nextMapping = surrogateMappings[index + 1];\n\n if (!nextMapping) {\n result.push(mapping);\n continue;\n }\n\n highSurrogates = mapping[0];\n lowSurrogates = mapping[1];\n nextHighSurrogates = nextMapping[0];\n nextLowSurrogates = nextMapping[1]; // Check for identical high surrogate ranges.\n\n tmpLow = lowSurrogates;\n\n while (nextHighSurrogates && highSurrogates[0] == nextHighSurrogates[0] && highSurrogates[1] == nextHighSurrogates[1]) {\n // Merge with the next item.\n if (dataIsSingleton(nextLowSurrogates)) {\n tmpLow = dataAdd(tmpLow, nextLowSurrogates[0]);\n } else {\n tmpLow = dataAddRange(tmpLow, nextLowSurrogates[0], nextLowSurrogates[1] - 1);\n }\n\n ++index;\n mapping = surrogateMappings[index];\n highSurrogates = mapping[0];\n lowSurrogates = mapping[1];\n nextMapping = surrogateMappings[index + 1];\n nextHighSurrogates = nextMapping && nextMapping[0];\n nextLowSurrogates = nextMapping && nextMapping[1];\n addLow = true;\n }\n\n result.push([highSurrogates, addLow ? tmpLow : lowSurrogates]);\n addLow = false;\n }\n\n return optimizeByLowSurrogates(result);\n };\n\n var optimizeByLowSurrogates = function (surrogateMappings) {\n if (surrogateMappings.length == 1) {\n return surrogateMappings;\n }\n\n var index = -1;\n var innerIndex = -1;\n\n while (++index < surrogateMappings.length) {\n var mapping = surrogateMappings[index];\n var lowSurrogates = mapping[1];\n var lowSurrogateStart = lowSurrogates[0];\n var lowSurrogateEnd = lowSurrogates[1];\n innerIndex = index; // Note: the loop starts at the next index.\n\n while (++innerIndex < surrogateMappings.length) {\n var otherMapping = surrogateMappings[innerIndex];\n var otherLowSurrogates = otherMapping[1];\n var otherLowSurrogateStart = otherLowSurrogates[0];\n var otherLowSurrogateEnd = otherLowSurrogates[1];\n\n if (lowSurrogateStart == otherLowSurrogateStart && lowSurrogateEnd == otherLowSurrogateEnd && otherLowSurrogates.length === 2) {\n // Add the code points in the other item to this one.\n if (dataIsSingleton(otherMapping[0])) {\n mapping[0] = dataAdd(mapping[0], otherMapping[0][0]);\n } else {\n mapping[0] = dataAddRange(mapping[0], otherMapping[0][0], otherMapping[0][1] - 1);\n } // Remove the other, now redundant, item.\n\n\n surrogateMappings.splice(innerIndex, 1);\n --innerIndex;\n }\n }\n }\n\n return surrogateMappings;\n };\n\n var surrogateSet = function (data) {\n // Exit early if `data` is an empty set.\n if (!data.length) {\n return [];\n } // Iterate over the data per `(start, end)` pair.\n\n\n var index = 0;\n var start;\n var end;\n var startHigh;\n var startLow;\n var endHigh;\n var endLow;\n var surrogateMappings = [];\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1;\n startHigh = highSurrogate(start);\n startLow = lowSurrogate(start);\n endHigh = highSurrogate(end);\n endLow = lowSurrogate(end);\n var startsWithLowestLowSurrogate = startLow == LOW_SURROGATE_MIN;\n var endsWithHighestLowSurrogate = endLow == LOW_SURROGATE_MAX;\n var complete = false; // Append the previous high-surrogate-to-low-surrogate mappings.\n // Step 1: `(startHigh, startLow)` to `(startHigh, LOW_SURROGATE_MAX)`.\n\n if (startHigh == endHigh || startsWithLowestLowSurrogate && endsWithHighestLowSurrogate) {\n surrogateMappings.push([[startHigh, endHigh + 1], [startLow, endLow + 1]]);\n complete = true;\n } else {\n surrogateMappings.push([[startHigh, startHigh + 1], [startLow, LOW_SURROGATE_MAX + 1]]);\n } // Step 2: `(startHigh + 1, LOW_SURROGATE_MIN)` to\n // `(endHigh - 1, LOW_SURROGATE_MAX)`.\n\n\n if (!complete && startHigh + 1 < endHigh) {\n if (endsWithHighestLowSurrogate) {\n // Combine step 2 and step 3.\n surrogateMappings.push([[startHigh + 1, endHigh + 1], [LOW_SURROGATE_MIN, endLow + 1]]);\n complete = true;\n } else {\n surrogateMappings.push([[startHigh + 1, endHigh], [LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1]]);\n }\n } // Step 3. `(endHigh, LOW_SURROGATE_MIN)` to `(endHigh, endLow)`.\n\n\n if (!complete) {\n surrogateMappings.push([[endHigh, endHigh + 1], [LOW_SURROGATE_MIN, endLow + 1]]);\n }\n\n index += 2;\n } // The format of `surrogateMappings` is as follows:\n //\n // [ surrogateMapping1, surrogateMapping2 ]\n //\n // i.e.:\n //\n // [\n // [ highSurrogates1, lowSurrogates1 ],\n // [ highSurrogates2, lowSurrogates2 ]\n // ]\n\n\n return optimizeSurrogateMappings(surrogateMappings);\n };\n\n var createSurrogateCharacterClasses = function (surrogateMappings) {\n var result = [];\n forEach(surrogateMappings, function (surrogateMapping) {\n var highSurrogates = surrogateMapping[0];\n var lowSurrogates = surrogateMapping[1];\n result.push(createBMPCharacterClasses(highSurrogates) + createBMPCharacterClasses(lowSurrogates));\n });\n return result.join('|');\n };\n\n var createCharacterClassesFromData = function (data, bmpOnly, hasUnicodeFlag) {\n if (hasUnicodeFlag) {\n return createUnicodeCharacterClasses(data);\n }\n\n var result = [];\n var parts = splitAtBMP(data);\n var loneHighSurrogates = parts.loneHighSurrogates;\n var loneLowSurrogates = parts.loneLowSurrogates;\n var bmp = parts.bmp;\n var astral = parts.astral;\n var hasLoneHighSurrogates = !dataIsEmpty(loneHighSurrogates);\n var hasLoneLowSurrogates = !dataIsEmpty(loneLowSurrogates);\n var surrogateMappings = surrogateSet(astral);\n\n if (bmpOnly) {\n bmp = dataAddData(bmp, loneHighSurrogates);\n hasLoneHighSurrogates = false;\n bmp = dataAddData(bmp, loneLowSurrogates);\n hasLoneLowSurrogates = false;\n }\n\n if (!dataIsEmpty(bmp)) {\n // The data set contains BMP code points that are not high surrogates\n // needed for astral code points in the set.\n result.push(createBMPCharacterClasses(bmp));\n }\n\n if (surrogateMappings.length) {\n // The data set contains astral code points; append character classes\n // based on their surrogate pairs.\n result.push(createSurrogateCharacterClasses(surrogateMappings));\n } // https://gist.github.com/mathiasbynens/bbe7f870208abcfec860\n\n\n if (hasLoneHighSurrogates) {\n result.push(createBMPCharacterClasses(loneHighSurrogates) + // Make sure the high surrogates aren’t part of a surrogate pair.\n '(?![\\\\uDC00-\\\\uDFFF])');\n }\n\n if (hasLoneLowSurrogates) {\n result.push( // It is not possible to accurately assert the low surrogates aren’t\n // part of a surrogate pair, since JavaScript regular expressions do\n // not support lookbehind.\n '(?:[^\\\\uD800-\\\\uDBFF]|^)' + createBMPCharacterClasses(loneLowSurrogates));\n }\n\n return result.join('|');\n };\n /*--------------------------------------------------------------------------*/\n // `regenerate` can be used as a constructor (and new methods can be added to\n // its prototype) but also as a regular function, the latter of which is the\n // documented and most common usage. For that reason, it’s not capitalized.\n\n\n var regenerate = function (value) {\n if (arguments.length > 1) {\n value = slice.call(arguments);\n }\n\n if (this instanceof regenerate) {\n this.data = [];\n return value ? this.add(value) : this;\n }\n\n return new regenerate().add(value);\n };\n\n regenerate.version = '1.4.2';\n var proto = regenerate.prototype;\n extend(proto, {\n 'add': function (value) {\n var $this = this;\n\n if (value == null) {\n return $this;\n }\n\n if (value instanceof regenerate) {\n // Allow passing other Regenerate instances.\n $this.data = dataAddData($this.data, value.data);\n return $this;\n }\n\n if (arguments.length > 1) {\n value = slice.call(arguments);\n }\n\n if (isArray(value)) {\n forEach(value, function (item) {\n $this.add(item);\n });\n return $this;\n }\n\n $this.data = dataAdd($this.data, isNumber(value) ? value : symbolToCodePoint(value));\n return $this;\n },\n 'remove': function (value) {\n var $this = this;\n\n if (value == null) {\n return $this;\n }\n\n if (value instanceof regenerate) {\n // Allow passing other Regenerate instances.\n $this.data = dataRemoveData($this.data, value.data);\n return $this;\n }\n\n if (arguments.length > 1) {\n value = slice.call(arguments);\n }\n\n if (isArray(value)) {\n forEach(value, function (item) {\n $this.remove(item);\n });\n return $this;\n }\n\n $this.data = dataRemove($this.data, isNumber(value) ? value : symbolToCodePoint(value));\n return $this;\n },\n 'addRange': function (start, end) {\n var $this = this;\n $this.data = dataAddRange($this.data, isNumber(start) ? start : symbolToCodePoint(start), isNumber(end) ? end : symbolToCodePoint(end));\n return $this;\n },\n 'removeRange': function (start, end) {\n var $this = this;\n var startCodePoint = isNumber(start) ? start : symbolToCodePoint(start);\n var endCodePoint = isNumber(end) ? end : symbolToCodePoint(end);\n $this.data = dataRemoveRange($this.data, startCodePoint, endCodePoint);\n return $this;\n },\n 'intersection': function (argument) {\n var $this = this; // Allow passing other Regenerate instances.\n // TODO: Optimize this by writing and using `dataIntersectionData()`.\n\n var array = argument instanceof regenerate ? dataToArray(argument.data) : argument;\n $this.data = dataIntersection($this.data, array);\n return $this;\n },\n 'contains': function (codePoint) {\n return dataContains(this.data, isNumber(codePoint) ? codePoint : symbolToCodePoint(codePoint));\n },\n 'clone': function () {\n var set = new regenerate();\n set.data = this.data.slice(0);\n return set;\n },\n 'toString': function (options) {\n var result = createCharacterClassesFromData(this.data, options ? options.bmpOnly : false, options ? options.hasUnicodeFlag : false);\n\n if (!result) {\n // For an empty set, return something that can be inserted `/here/` to\n // form a valid regular expression. Avoid `(?:)` since that matches the\n // empty string.\n return '[]';\n } // Use `\\0` instead of `\\x00` where possible.\n\n\n return result.replace(regexNull, '\\\\0$1');\n },\n 'toRegExp': function (flags) {\n var pattern = this.toString(flags && flags.indexOf('u') != -1 ? {\n 'hasUnicodeFlag': true\n } : null);\n return RegExp(pattern, flags || '');\n },\n 'valueOf': function () {\n // Note: `valueOf` is aliased as `toArray`.\n return dataToArray(this.data);\n }\n });\n proto.toArray = proto.valueOf; // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n define(function () {\n return regenerate;\n });\n } else if (freeExports && !freeExports.nodeType) {\n if (freeModule) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = regenerate;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n freeExports.regenerate = regenerate;\n }\n } else {\n // in Rhino or a web browser\n root.regenerate = regenerate;\n }\n})(this);","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default isPropValid;","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as s, useMemo as i, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\n\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n\n return e;\n }).apply(this, arguments);\n}\n\nvar g = function (e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) n.push(t[r], e[r + 1]);\n\n return n;\n},\n S = function (t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n},\n w = Object.freeze([]),\n E = Object.freeze({});\n\nfunction b(e) {\n return \"function\" == typeof e;\n}\n\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\n\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\n\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.6\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n} : {};\n\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\n\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\n\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) t += this.groupSizes[n];\n\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) (o <<= 1) < 0 && j(16, \"\" + e);\n\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n\n for (var s = r; s < o; s++) this.groupSizes[s] = 0;\n }\n\n for (var i = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) this.tag.insertRule(i, t[a]) && (this.groupSizes[e]++, i++);\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n\n for (var o = n; o < r; o++) this.tag.deleteRule(n);\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, s = r; s < o; s++) t += this.tag.getRule(s) + \"/*!sc*/\\n\";\n\n return t;\n }, e;\n}(),\n x = new Map(),\n k = new Map(),\n V = 1,\n B = function (e) {\n if (x.has(e)) return x.get(e);\n\n for (; k.has(V);) V++;\n\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), x.set(e, t), k.set(t, e), t;\n},\n z = function (e) {\n return k.get(e);\n},\n M = function (e, t) {\n t >= V && (V = t + 1), x.set(e, t), k.set(t, e);\n},\n G = \"style[\" + A + '][data-styled-version=\"5.3.6\"]',\n L = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function (e, t, n) {\n for (var r, o = n.split(\",\"), s = 0, i = o.length; s < i; s++) (r = o[s]) && e.registerName(t, r);\n},\n Y = function (e, t) {\n for (var n = (t.textContent || \"\").split(\"/*!sc*/\\n\"), r = [], o = 0, s = n.length; o < s; o++) {\n var i = n[o].trim();\n\n if (i) {\n var a = i.match(L);\n\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (M(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(i);\n }\n }\n},\n q = function () {\n return \"undefined\" != typeof __webpack_nonce__ ? __webpack_nonce__ : null;\n},\n H = function (e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n s = void 0 !== o ? o.nextSibling : null;\n\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.6\");\n var i = q();\n return i && r.setAttribute(\"nonce\", i), n.insertBefore(r, s), r;\n},\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n\n j(17);\n }(t), this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n}(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n}(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n}(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n},\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), this.server = !!e.isServer, !this.server && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(G), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n\n e.registerId = function (e) {\n return B(e);\n };\n\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var s = z(o);\n\n if (void 0 !== s) {\n var i = e.names.get(s),\n a = t.getGroup(o);\n\n if (i && a && i.size) {\n var c = A + \".g\" + o + '[id=\"' + s + '\"]',\n u = \"\";\n void 0 !== i && i.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n\n return r;\n }(this);\n }, e;\n}(),\n K = /(a)(d)/gi,\n Q = function (e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n};\n\nfunction ee(e) {\n var t,\n n = \"\";\n\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) n = Q(t % 52) + n;\n\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\n\nvar te = function (e, t) {\n for (var n = t.length; n;) e = 33 * e ^ t.charCodeAt(--n);\n\n return e;\n},\n ne = function (e) {\n return te(5381, e);\n};\n\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n\n return !0;\n}\n\nvar oe = ne(\"5.3.6\"),\n se = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var s = Ne(this.rules, e, t, n).join(\"\"),\n i = ee(te(this.baseHash, s) >>> 0);\n\n if (!t.hasNameForId(r, i)) {\n var a = n(s, \".\" + i, void 0, r);\n t.insertRules(r, i, a);\n }\n\n o.push(i), this.staticRulesId = i;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n\n if (l) {\n var m = ee(u >>> 0);\n\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n}(),\n ie = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\n\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n s = void 0 === e ? E : e,\n i = s.options,\n a = void 0 === i ? E : i,\n c = s.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n\n return function (n, r, o, s, i, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function (e, r, s) {\n return 0 === r && -1 !== ae.indexOf(s[n.length]) || s.match(o) ? e : \".\" + t;\n };\n\n function m(e, s, i, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ie, \"\"),\n u = s && i ? i + \" \" + s + \" { \" + c + \" }\" : c;\n return t = a, n = s, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(i || !s ? \"\" : s, u);\n }\n\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\n\nvar ue = r.createContext(),\n le = ue.Consumer,\n de = r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\n\nfunction fe() {\n return s(ue) || he;\n}\n\nfunction me() {\n return s(de) || pe;\n}\n\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n s = t[1],\n c = fe(),\n u = i(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = i(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || s(e.stylisPlugins);\n }, [e.stylisPlugins]), r.createElement(ue.Provider, {\n value: u\n }, r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\n\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n}(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function (e) {\n return \"-\" + e.toLowerCase();\n};\n\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\n\nvar _e = function (e) {\n return null == e || !1 === e || \"\" === e;\n};\n\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var s, i = [], a = 0, c = e.length; a < c; a += 1) \"\" !== (s = Ne(e[a], n, r, o)) && (Array.isArray(s) ? i.push.apply(i, s) : i.push(s));\n\n return i;\n }\n\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n s = [];\n\n for (var i in t) t.hasOwnProperty(i) && !_e(t[i]) && (Array.isArray(t[i]) && t[i].isCss || b(t[i]) ? s.push(be(i) + \":\", t[i], \";\") : S(t[i]) ? s.push.apply(s, e(t[i], i)) : s.push(be(i) + \": \" + (r = i, null == (o = t[i]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n\n return n ? [n + \" {\"].concat(s, [\"}\"]) : s;\n }(e) : e.toString();\n}\n\nvar Ae = function (e) {\n return Array.isArray(e) && (e.isCss = !0), e;\n};\n\nfunction Ce(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n return b(e) || S(e) ? Ae(Ne(g(w, [e].concat(n)))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ae(Ne(g(e, n)));\n}\n\nvar Ie = /invalid hook call/i,\n Pe = new Set(),\n Oe = function (e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",\n r = console.error;\n\n try {\n var o = !0;\n console.error = function (e) {\n if (Ie.test(e)) o = !1, Pe.delete(n);else {\n for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) s[i - 1] = arguments[i];\n\n r.apply(void 0, [e].concat(s));\n }\n }, c(), o && !Pe.has(n) && (console.warn(n), Pe.add(n));\n } catch (e) {\n Ie.test(e.message) && Pe.delete(n);\n } finally {\n console.error = r;\n }\n }\n},\n Re = function (e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n},\n De = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n je = /(^-|-$)/g;\n\nfunction Te(e) {\n return e.replace(De, \"-\").replace(je, \"\");\n}\n\nvar xe = function (e) {\n return ee(ne(e) >>> 0);\n};\n\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\n\nvar Ve = function (e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n},\n Be = function (e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n};\n\nfunction ze(e, t, n) {\n var r = e[n];\n Ve(t) && Ve(r) ? Me(r, t) : e[n] = t;\n}\n\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n for (var o = 0, s = n; o < s.length; o++) {\n var i = s[o];\n if (Ve(i)) for (var a in i) Be(a) && ze(e, i[a], a);\n }\n\n return e;\n}\n\nvar Ge = r.createContext(),\n Le = Ge.Consumer;\n\nfunction Fe(e) {\n var t = s(Ge),\n n = i(function () {\n return function (e, t) {\n if (!e) return j(14);\n\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\n\nvar Ye = {};\n\nfunction qe(e, t, n) {\n var o = N(e),\n i = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Te(e);\n Ye[n] = (Ye[n] || 0) + 1;\n var r = n + \"-\" + xe(\"5.3.6\" + n + Ye[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? Te(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n\n var C,\n I = new se(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function (e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n i = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n s,\n i = e;\n\n for (t in b(i) && (i = i(r)), i) r[t] = o[t] = \"className\" === t ? (n = o[t], s = i[t], n && s ? n + \" \" + s : n || s) : i[t];\n }), [r, o];\n }(Re(t, s(Ge), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n s = me(),\n i = t ? e.generateAndInjectStyles(E, o, s) : e.generateAndInjectStyles(n, o, s);\n return \"production\" !== process.env.NODE_ENV && l(i), \"production\" !== process.env.NODE_ENV && !t && r && r(i), i;\n }(i, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n\n for (var I in A) \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, u(_, C);\n }(C, e, t, P);\n };\n\n return O.displayName = f, (C = r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n s = Object.keys(e);\n\n for (r = 0; r < s.length; r++) n = s[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n\n return o;\n }(t, [\"componentId\"]),\n s = r && r + \"-\" + (ke(e) ? e : Te(_(e)));\n\n return qe(e, v({}, o, {\n attrs: S,\n componentId: s\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function () {\n return this._foldedDefaultProps;\n },\n set: function (t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Oe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var s = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + s + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, i && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\n\nvar He = function (e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n\n var s = function () {\n return t(r, o, Ce.apply(void 0, arguments));\n };\n\n return s.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, s.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, s;\n }(qe, e);\n};\n\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\n\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n s = this.componentId + e;\n n.insertRules(s, s, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\n\nfunction We(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) n[o - 1] = arguments[o];\n\n var i = Ce.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + xe(JSON.stringify(i)),\n u = new $e(i, a);\n\n function l(e) {\n var t = fe(),\n n = me(),\n o = s(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && i.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), t.server && h(l, e, t, o, n), d(function () {\n if (!t.server) return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var s = v({}, t, {\n theme: Re(t, r, l.defaultProps)\n });\n u.renderStyles(e, s, n, o);\n }\n }\n\n return \"production\" !== process.env.NODE_ENV && Oe(a), r.memo(l);\n}\n\nfunction Ue(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n var o = Ce.apply(void 0, [e].concat(n)).join(\"\"),\n s = xe(o);\n return new ve(s, o);\n}\n\nvar Je = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString();\n if (!t) return \"\";\n var n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.6\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n}(),\n Xe = function (e) {\n var t = r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n},\n Ze = function () {\n return s(Ge);\n},\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n};\n\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","module.exports = new Set([// Non-binary properties:\n'General_Category', 'Script', 'Script_Extensions', // Binary properties:\n'Alphabetic', 'Any', 'ASCII', 'ASCII_Hex_Digit', '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', 'ID_Continue', 'ID_Start', 'Ideographic', 'IDS_Binary_Operator', 'IDS_Trinary_Operator', 'Join_Control', 'Logical_Order_Exception', 'Lowercase', 'Math', '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']);","'use strict';\n\nconst canonicalProperties = require('unicode-canonical-property-names-ecmascript');\n\nconst propertyAliases = require('unicode-property-aliases-ecmascript');\n\nconst matchProperty = function (property) {\n if (canonicalProperties.has(property)) {\n return property;\n }\n\n if (propertyAliases.has(property)) {\n return propertyAliases.get(property);\n }\n\n throw new Error(\"Unknown property: \".concat(property));\n};\n\nmodule.exports = matchProperty;","module.exports = new Map([['General_Category', new Map([['C', 'Other'], ['Cc', 'Control'], ['cntrl', 'Control'], ['Cf', 'Format'], ['Cn', 'Unassigned'], ['Co', 'Private_Use'], ['Cs', 'Surrogate'], ['L', 'Letter'], ['LC', 'Cased_Letter'], ['Ll', 'Lowercase_Letter'], ['Lm', 'Modifier_Letter'], ['Lo', 'Other_Letter'], ['Lt', 'Titlecase_Letter'], ['Lu', 'Uppercase_Letter'], ['M', 'Mark'], ['Combining_Mark', 'Mark'], ['Mc', 'Spacing_Mark'], ['Me', 'Enclosing_Mark'], ['Mn', 'Nonspacing_Mark'], ['N', 'Number'], ['Nd', 'Decimal_Number'], ['digit', 'Decimal_Number'], ['Nl', 'Letter_Number'], ['No', 'Other_Number'], ['P', 'Punctuation'], ['punct', 'Punctuation'], ['Pc', 'Connector_Punctuation'], ['Pd', 'Dash_Punctuation'], ['Pe', 'Close_Punctuation'], ['Pf', 'Final_Punctuation'], ['Pi', 'Initial_Punctuation'], ['Po', 'Other_Punctuation'], ['Ps', 'Open_Punctuation'], ['S', 'Symbol'], ['Sc', 'Currency_Symbol'], ['Sk', 'Modifier_Symbol'], ['Sm', 'Math_Symbol'], ['So', 'Other_Symbol'], ['Z', 'Separator'], ['Zl', 'Line_Separator'], ['Zp', 'Paragraph_Separator'], ['Zs', 'Space_Separator'], ['Other', 'Other'], ['Control', 'Control'], ['Format', 'Format'], ['Unassigned', 'Unassigned'], ['Private_Use', 'Private_Use'], ['Surrogate', 'Surrogate'], ['Letter', 'Letter'], ['Cased_Letter', 'Cased_Letter'], ['Lowercase_Letter', 'Lowercase_Letter'], ['Modifier_Letter', 'Modifier_Letter'], ['Other_Letter', 'Other_Letter'], ['Titlecase_Letter', 'Titlecase_Letter'], ['Uppercase_Letter', 'Uppercase_Letter'], ['Mark', 'Mark'], ['Spacing_Mark', 'Spacing_Mark'], ['Enclosing_Mark', 'Enclosing_Mark'], ['Nonspacing_Mark', 'Nonspacing_Mark'], ['Number', 'Number'], ['Decimal_Number', 'Decimal_Number'], ['Letter_Number', 'Letter_Number'], ['Other_Number', 'Other_Number'], ['Punctuation', 'Punctuation'], ['Connector_Punctuation', 'Connector_Punctuation'], ['Dash_Punctuation', 'Dash_Punctuation'], ['Close_Punctuation', 'Close_Punctuation'], ['Final_Punctuation', 'Final_Punctuation'], ['Initial_Punctuation', 'Initial_Punctuation'], ['Other_Punctuation', 'Other_Punctuation'], ['Open_Punctuation', 'Open_Punctuation'], ['Symbol', 'Symbol'], ['Currency_Symbol', 'Currency_Symbol'], ['Modifier_Symbol', 'Modifier_Symbol'], ['Math_Symbol', 'Math_Symbol'], ['Other_Symbol', 'Other_Symbol'], ['Separator', 'Separator'], ['Line_Separator', 'Line_Separator'], ['Paragraph_Separator', 'Paragraph_Separator'], ['Space_Separator', 'Space_Separator']])], ['Script', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])], ['Script_Extensions', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])]]);","'use strict';\n\nconst propertyToValueAliases = require('./data/mappings.js');\n\nconst matchPropertyValue = function (property, value) {\n const aliasToValue = propertyToValueAliases.get(property);\n\n if (!aliasToValue) {\n throw new Error(\"Unknown property `\".concat(property, \"`.\"));\n }\n\n const canonicalValue = aliasToValue.get(value);\n\n if (canonicalValue) {\n return canonicalValue;\n }\n\n throw new Error(\"Unknown value `\".concat(value, \"` for property `\").concat(property, \"`.\"));\n};\n\nmodule.exports = matchPropertyValue;","// Generated using `npm run build`. Do not edit!\nmodule.exports = new Map([['scx', 'Script_Extensions'], ['sc', 'Script'], ['gc', 'General_Category'], ['AHex', 'ASCII_Hex_Digit'], ['Alpha', 'Alphabetic'], ['Bidi_C', 'Bidi_Control'], ['Bidi_M', 'Bidi_Mirrored'], ['Cased', 'Cased'], ['CI', 'Case_Ignorable'], ['CWCF', 'Changes_When_Casefolded'], ['CWCM', 'Changes_When_Casemapped'], ['CWKCF', 'Changes_When_NFKC_Casefolded'], ['CWL', 'Changes_When_Lowercased'], ['CWT', 'Changes_When_Titlecased'], ['CWU', 'Changes_When_Uppercased'], ['Dash', 'Dash'], ['Dep', 'Deprecated'], ['DI', 'Default_Ignorable_Code_Point'], ['Dia', 'Diacritic'], ['EBase', 'Emoji_Modifier_Base'], ['EComp', 'Emoji_Component'], ['EMod', 'Emoji_Modifier'], ['Emoji', 'Emoji'], ['EPres', 'Emoji_Presentation'], ['Ext', 'Extender'], ['ExtPict', 'Extended_Pictographic'], ['Gr_Base', 'Grapheme_Base'], ['Gr_Ext', 'Grapheme_Extend'], ['Hex', 'Hex_Digit'], ['IDC', 'ID_Continue'], ['Ideo', 'Ideographic'], ['IDS', 'ID_Start'], ['IDSB', 'IDS_Binary_Operator'], ['IDST', 'IDS_Trinary_Operator'], ['Join_C', 'Join_Control'], ['LOE', 'Logical_Order_Exception'], ['Lower', 'Lowercase'], ['Math', 'Math'], ['NChar', 'Noncharacter_Code_Point'], ['Pat_Syn', 'Pattern_Syntax'], ['Pat_WS', 'Pattern_White_Space'], ['QMark', 'Quotation_Mark'], ['Radical', 'Radical'], ['RI', 'Regional_Indicator'], ['SD', 'Soft_Dotted'], ['STerm', 'Sentence_Terminal'], ['Term', 'Terminal_Punctuation'], ['UIdeo', 'Unified_Ideograph'], ['Upper', 'Uppercase'], ['VS', 'Variation_Selector'], ['WSpace', 'White_Space'], ['space', 'White_Space'], ['XIDC', 'XID_Continue'], ['XIDS', 'XID_Start']]);","var map = {\n\t\"./Binary_Property/ASCII.js\": 80055,\n\t\"./Binary_Property/ASCII_Hex_Digit.js\": 81731,\n\t\"./Binary_Property/Alphabetic.js\": 75244,\n\t\"./Binary_Property/Any.js\": 25929,\n\t\"./Binary_Property/Assigned.js\": 72573,\n\t\"./Binary_Property/Bidi_Control.js\": 83029,\n\t\"./Binary_Property/Bidi_Mirrored.js\": 50755,\n\t\"./Binary_Property/Case_Ignorable.js\": 86317,\n\t\"./Binary_Property/Cased.js\": 78087,\n\t\"./Binary_Property/Changes_When_Casefolded.js\": 61587,\n\t\"./Binary_Property/Changes_When_Casemapped.js\": 62518,\n\t\"./Binary_Property/Changes_When_Lowercased.js\": 50140,\n\t\"./Binary_Property/Changes_When_NFKC_Casefolded.js\": 97224,\n\t\"./Binary_Property/Changes_When_Titlecased.js\": 40835,\n\t\"./Binary_Property/Changes_When_Uppercased.js\": 95428,\n\t\"./Binary_Property/Dash.js\": 78233,\n\t\"./Binary_Property/Default_Ignorable_Code_Point.js\": 91357,\n\t\"./Binary_Property/Deprecated.js\": 18391,\n\t\"./Binary_Property/Diacritic.js\": 5198,\n\t\"./Binary_Property/Emoji.js\": 42117,\n\t\"./Binary_Property/Emoji_Component.js\": 97581,\n\t\"./Binary_Property/Emoji_Modifier.js\": 39030,\n\t\"./Binary_Property/Emoji_Modifier_Base.js\": 18618,\n\t\"./Binary_Property/Emoji_Presentation.js\": 29702,\n\t\"./Binary_Property/Extended_Pictographic.js\": 5667,\n\t\"./Binary_Property/Extender.js\": 9002,\n\t\"./Binary_Property/Grapheme_Base.js\": 96851,\n\t\"./Binary_Property/Grapheme_Extend.js\": 71054,\n\t\"./Binary_Property/Hex_Digit.js\": 80662,\n\t\"./Binary_Property/IDS_Binary_Operator.js\": 66910,\n\t\"./Binary_Property/IDS_Trinary_Operator.js\": 31548,\n\t\"./Binary_Property/ID_Continue.js\": 97301,\n\t\"./Binary_Property/ID_Start.js\": 47818,\n\t\"./Binary_Property/Ideographic.js\": 82217,\n\t\"./Binary_Property/Join_Control.js\": 15332,\n\t\"./Binary_Property/Logical_Order_Exception.js\": 55780,\n\t\"./Binary_Property/Lowercase.js\": 61091,\n\t\"./Binary_Property/Math.js\": 7146,\n\t\"./Binary_Property/Noncharacter_Code_Point.js\": 51752,\n\t\"./Binary_Property/Pattern_Syntax.js\": 76596,\n\t\"./Binary_Property/Pattern_White_Space.js\": 86436,\n\t\"./Binary_Property/Quotation_Mark.js\": 29467,\n\t\"./Binary_Property/Radical.js\": 68163,\n\t\"./Binary_Property/Regional_Indicator.js\": 16412,\n\t\"./Binary_Property/Sentence_Terminal.js\": 25496,\n\t\"./Binary_Property/Soft_Dotted.js\": 83045,\n\t\"./Binary_Property/Terminal_Punctuation.js\": 20991,\n\t\"./Binary_Property/Unified_Ideograph.js\": 15154,\n\t\"./Binary_Property/Uppercase.js\": 91909,\n\t\"./Binary_Property/Variation_Selector.js\": 64590,\n\t\"./Binary_Property/White_Space.js\": 42886,\n\t\"./Binary_Property/XID_Continue.js\": 83067,\n\t\"./Binary_Property/XID_Start.js\": 86524,\n\t\"./General_Category/Cased_Letter.js\": 94195,\n\t\"./General_Category/Close_Punctuation.js\": 42549,\n\t\"./General_Category/Connector_Punctuation.js\": 72437,\n\t\"./General_Category/Control.js\": 44467,\n\t\"./General_Category/Currency_Symbol.js\": 75431,\n\t\"./General_Category/Dash_Punctuation.js\": 86441,\n\t\"./General_Category/Decimal_Number.js\": 57965,\n\t\"./General_Category/Enclosing_Mark.js\": 89586,\n\t\"./General_Category/Final_Punctuation.js\": 32965,\n\t\"./General_Category/Format.js\": 32277,\n\t\"./General_Category/Initial_Punctuation.js\": 5900,\n\t\"./General_Category/Letter.js\": 63764,\n\t\"./General_Category/Letter_Number.js\": 43043,\n\t\"./General_Category/Line_Separator.js\": 19307,\n\t\"./General_Category/Lowercase_Letter.js\": 45025,\n\t\"./General_Category/Mark.js\": 76197,\n\t\"./General_Category/Math_Symbol.js\": 21803,\n\t\"./General_Category/Modifier_Letter.js\": 31022,\n\t\"./General_Category/Modifier_Symbol.js\": 46858,\n\t\"./General_Category/Nonspacing_Mark.js\": 85948,\n\t\"./General_Category/Number.js\": 78861,\n\t\"./General_Category/Open_Punctuation.js\": 38999,\n\t\"./General_Category/Other.js\": 30567,\n\t\"./General_Category/Other_Letter.js\": 52093,\n\t\"./General_Category/Other_Number.js\": 80180,\n\t\"./General_Category/Other_Punctuation.js\": 72919,\n\t\"./General_Category/Other_Symbol.js\": 57481,\n\t\"./General_Category/Paragraph_Separator.js\": 26400,\n\t\"./General_Category/Private_Use.js\": 55205,\n\t\"./General_Category/Punctuation.js\": 78350,\n\t\"./General_Category/Separator.js\": 66827,\n\t\"./General_Category/Space_Separator.js\": 29909,\n\t\"./General_Category/Spacing_Mark.js\": 67089,\n\t\"./General_Category/Surrogate.js\": 38703,\n\t\"./General_Category/Symbol.js\": 34345,\n\t\"./General_Category/Titlecase_Letter.js\": 87135,\n\t\"./General_Category/Unassigned.js\": 48068,\n\t\"./General_Category/Uppercase_Letter.js\": 54508,\n\t\"./Property_of_Strings/Basic_Emoji.js\": 7134,\n\t\"./Property_of_Strings/Emoji_Keycap_Sequence.js\": 1354,\n\t\"./Property_of_Strings/RGI_Emoji.js\": 64708,\n\t\"./Property_of_Strings/RGI_Emoji_Flag_Sequence.js\": 32530,\n\t\"./Property_of_Strings/RGI_Emoji_Modifier_Sequence.js\": 76685,\n\t\"./Property_of_Strings/RGI_Emoji_Tag_Sequence.js\": 80852,\n\t\"./Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js\": 70523,\n\t\"./Script/Adlam.js\": 67309,\n\t\"./Script/Ahom.js\": 21824,\n\t\"./Script/Anatolian_Hieroglyphs.js\": 44251,\n\t\"./Script/Arabic.js\": 93703,\n\t\"./Script/Armenian.js\": 52003,\n\t\"./Script/Avestan.js\": 91194,\n\t\"./Script/Balinese.js\": 97148,\n\t\"./Script/Bamum.js\": 92508,\n\t\"./Script/Bassa_Vah.js\": 87398,\n\t\"./Script/Batak.js\": 70403,\n\t\"./Script/Bengali.js\": 60285,\n\t\"./Script/Bhaiksuki.js\": 10143,\n\t\"./Script/Bopomofo.js\": 25500,\n\t\"./Script/Brahmi.js\": 69672,\n\t\"./Script/Braille.js\": 67008,\n\t\"./Script/Buginese.js\": 32055,\n\t\"./Script/Buhid.js\": 90141,\n\t\"./Script/Canadian_Aboriginal.js\": 40912,\n\t\"./Script/Carian.js\": 68653,\n\t\"./Script/Caucasian_Albanian.js\": 47231,\n\t\"./Script/Chakma.js\": 38234,\n\t\"./Script/Cham.js\": 29076,\n\t\"./Script/Cherokee.js\": 47242,\n\t\"./Script/Chorasmian.js\": 91466,\n\t\"./Script/Common.js\": 2325,\n\t\"./Script/Coptic.js\": 4957,\n\t\"./Script/Cuneiform.js\": 51215,\n\t\"./Script/Cypriot.js\": 94221,\n\t\"./Script/Cypro_Minoan.js\": 77004,\n\t\"./Script/Cyrillic.js\": 49326,\n\t\"./Script/Deseret.js\": 2436,\n\t\"./Script/Devanagari.js\": 76224,\n\t\"./Script/Dives_Akuru.js\": 28156,\n\t\"./Script/Dogra.js\": 19019,\n\t\"./Script/Duployan.js\": 11233,\n\t\"./Script/Egyptian_Hieroglyphs.js\": 82904,\n\t\"./Script/Elbasan.js\": 50651,\n\t\"./Script/Elymaic.js\": 63404,\n\t\"./Script/Ethiopic.js\": 42249,\n\t\"./Script/Georgian.js\": 77113,\n\t\"./Script/Glagolitic.js\": 84922,\n\t\"./Script/Gothic.js\": 8047,\n\t\"./Script/Grantha.js\": 31338,\n\t\"./Script/Greek.js\": 74214,\n\t\"./Script/Gujarati.js\": 51130,\n\t\"./Script/Gunjala_Gondi.js\": 60046,\n\t\"./Script/Gurmukhi.js\": 37307,\n\t\"./Script/Han.js\": 77439,\n\t\"./Script/Hangul.js\": 73296,\n\t\"./Script/Hanifi_Rohingya.js\": 67439,\n\t\"./Script/Hanunoo.js\": 71394,\n\t\"./Script/Hatran.js\": 68092,\n\t\"./Script/Hebrew.js\": 24189,\n\t\"./Script/Hiragana.js\": 84371,\n\t\"./Script/Imperial_Aramaic.js\": 10780,\n\t\"./Script/Inherited.js\": 71122,\n\t\"./Script/Inscriptional_Pahlavi.js\": 53431,\n\t\"./Script/Inscriptional_Parthian.js\": 580,\n\t\"./Script/Javanese.js\": 37174,\n\t\"./Script/Kaithi.js\": 77983,\n\t\"./Script/Kannada.js\": 29485,\n\t\"./Script/Katakana.js\": 3962,\n\t\"./Script/Kawi.js\": 99140,\n\t\"./Script/Kayah_Li.js\": 88425,\n\t\"./Script/Kharoshthi.js\": 11648,\n\t\"./Script/Khitan_Small_Script.js\": 67968,\n\t\"./Script/Khmer.js\": 21205,\n\t\"./Script/Khojki.js\": 5794,\n\t\"./Script/Khudawadi.js\": 95492,\n\t\"./Script/Lao.js\": 29088,\n\t\"./Script/Latin.js\": 59992,\n\t\"./Script/Lepcha.js\": 66891,\n\t\"./Script/Limbu.js\": 33324,\n\t\"./Script/Linear_A.js\": 74596,\n\t\"./Script/Linear_B.js\": 1620,\n\t\"./Script/Lisu.js\": 42747,\n\t\"./Script/Lycian.js\": 1657,\n\t\"./Script/Lydian.js\": 79038,\n\t\"./Script/Mahajani.js\": 58990,\n\t\"./Script/Makasar.js\": 31935,\n\t\"./Script/Malayalam.js\": 15666,\n\t\"./Script/Mandaic.js\": 81458,\n\t\"./Script/Manichaean.js\": 49002,\n\t\"./Script/Marchen.js\": 38394,\n\t\"./Script/Masaram_Gondi.js\": 13910,\n\t\"./Script/Medefaidrin.js\": 91850,\n\t\"./Script/Meetei_Mayek.js\": 43034,\n\t\"./Script/Mende_Kikakui.js\": 51271,\n\t\"./Script/Meroitic_Cursive.js\": 70039,\n\t\"./Script/Meroitic_Hieroglyphs.js\": 28978,\n\t\"./Script/Miao.js\": 41801,\n\t\"./Script/Modi.js\": 28146,\n\t\"./Script/Mongolian.js\": 34848,\n\t\"./Script/Mro.js\": 75485,\n\t\"./Script/Multani.js\": 45988,\n\t\"./Script/Myanmar.js\": 76042,\n\t\"./Script/Nabataean.js\": 81263,\n\t\"./Script/Nag_Mundari.js\": 17318,\n\t\"./Script/Nandinagari.js\": 16087,\n\t\"./Script/New_Tai_Lue.js\": 93938,\n\t\"./Script/Newa.js\": 12645,\n\t\"./Script/Nko.js\": 41687,\n\t\"./Script/Nushu.js\": 19566,\n\t\"./Script/Nyiakeng_Puachue_Hmong.js\": 57324,\n\t\"./Script/Ogham.js\": 28054,\n\t\"./Script/Ol_Chiki.js\": 50326,\n\t\"./Script/Old_Hungarian.js\": 89704,\n\t\"./Script/Old_Italic.js\": 81737,\n\t\"./Script/Old_North_Arabian.js\": 60623,\n\t\"./Script/Old_Permic.js\": 84547,\n\t\"./Script/Old_Persian.js\": 4062,\n\t\"./Script/Old_Sogdian.js\": 91435,\n\t\"./Script/Old_South_Arabian.js\": 17744,\n\t\"./Script/Old_Turkic.js\": 85004,\n\t\"./Script/Old_Uyghur.js\": 56299,\n\t\"./Script/Oriya.js\": 61702,\n\t\"./Script/Osage.js\": 66820,\n\t\"./Script/Osmanya.js\": 68741,\n\t\"./Script/Pahawh_Hmong.js\": 43421,\n\t\"./Script/Palmyrene.js\": 71540,\n\t\"./Script/Pau_Cin_Hau.js\": 1646,\n\t\"./Script/Phags_Pa.js\": 79532,\n\t\"./Script/Phoenician.js\": 17297,\n\t\"./Script/Psalter_Pahlavi.js\": 59563,\n\t\"./Script/Rejang.js\": 15670,\n\t\"./Script/Runic.js\": 15180,\n\t\"./Script/Samaritan.js\": 85123,\n\t\"./Script/Saurashtra.js\": 40061,\n\t\"./Script/Sharada.js\": 72487,\n\t\"./Script/Shavian.js\": 59504,\n\t\"./Script/Siddham.js\": 565,\n\t\"./Script/SignWriting.js\": 19877,\n\t\"./Script/Sinhala.js\": 66662,\n\t\"./Script/Sogdian.js\": 11761,\n\t\"./Script/Sora_Sompeng.js\": 35055,\n\t\"./Script/Soyombo.js\": 62187,\n\t\"./Script/Sundanese.js\": 78461,\n\t\"./Script/Syloti_Nagri.js\": 74405,\n\t\"./Script/Syriac.js\": 15815,\n\t\"./Script/Tagalog.js\": 2333,\n\t\"./Script/Tagbanwa.js\": 38249,\n\t\"./Script/Tai_Le.js\": 29852,\n\t\"./Script/Tai_Tham.js\": 59997,\n\t\"./Script/Tai_Viet.js\": 92465,\n\t\"./Script/Takri.js\": 95234,\n\t\"./Script/Tamil.js\": 59527,\n\t\"./Script/Tangsa.js\": 946,\n\t\"./Script/Tangut.js\": 86011,\n\t\"./Script/Telugu.js\": 4866,\n\t\"./Script/Thaana.js\": 36876,\n\t\"./Script/Thai.js\": 71517,\n\t\"./Script/Tibetan.js\": 49897,\n\t\"./Script/Tifinagh.js\": 71384,\n\t\"./Script/Tirhuta.js\": 51862,\n\t\"./Script/Toto.js\": 79830,\n\t\"./Script/Ugaritic.js\": 92019,\n\t\"./Script/Vai.js\": 57677,\n\t\"./Script/Vithkuqi.js\": 10301,\n\t\"./Script/Wancho.js\": 12679,\n\t\"./Script/Warang_Citi.js\": 79917,\n\t\"./Script/Yezidi.js\": 33172,\n\t\"./Script/Yi.js\": 94344,\n\t\"./Script/Zanabazar_Square.js\": 90753,\n\t\"./Script_Extensions/Adlam.js\": 38937,\n\t\"./Script_Extensions/Ahom.js\": 9811,\n\t\"./Script_Extensions/Anatolian_Hieroglyphs.js\": 11878,\n\t\"./Script_Extensions/Arabic.js\": 98988,\n\t\"./Script_Extensions/Armenian.js\": 50944,\n\t\"./Script_Extensions/Avestan.js\": 96478,\n\t\"./Script_Extensions/Balinese.js\": 28898,\n\t\"./Script_Extensions/Bamum.js\": 42809,\n\t\"./Script_Extensions/Bassa_Vah.js\": 36382,\n\t\"./Script_Extensions/Batak.js\": 18210,\n\t\"./Script_Extensions/Bengali.js\": 39762,\n\t\"./Script_Extensions/Bhaiksuki.js\": 69666,\n\t\"./Script_Extensions/Bopomofo.js\": 87754,\n\t\"./Script_Extensions/Brahmi.js\": 94830,\n\t\"./Script_Extensions/Braille.js\": 65528,\n\t\"./Script_Extensions/Buginese.js\": 3789,\n\t\"./Script_Extensions/Buhid.js\": 53126,\n\t\"./Script_Extensions/Canadian_Aboriginal.js\": 61228,\n\t\"./Script_Extensions/Carian.js\": 26604,\n\t\"./Script_Extensions/Caucasian_Albanian.js\": 68874,\n\t\"./Script_Extensions/Chakma.js\": 57717,\n\t\"./Script_Extensions/Cham.js\": 50272,\n\t\"./Script_Extensions/Cherokee.js\": 48334,\n\t\"./Script_Extensions/Chorasmian.js\": 61166,\n\t\"./Script_Extensions/Common.js\": 73219,\n\t\"./Script_Extensions/Coptic.js\": 33538,\n\t\"./Script_Extensions/Cuneiform.js\": 59678,\n\t\"./Script_Extensions/Cypriot.js\": 45995,\n\t\"./Script_Extensions/Cypro_Minoan.js\": 19536,\n\t\"./Script_Extensions/Cyrillic.js\": 18638,\n\t\"./Script_Extensions/Deseret.js\": 77756,\n\t\"./Script_Extensions/Devanagari.js\": 85640,\n\t\"./Script_Extensions/Dives_Akuru.js\": 97606,\n\t\"./Script_Extensions/Dogra.js\": 80650,\n\t\"./Script_Extensions/Duployan.js\": 4539,\n\t\"./Script_Extensions/Egyptian_Hieroglyphs.js\": 41585,\n\t\"./Script_Extensions/Elbasan.js\": 40751,\n\t\"./Script_Extensions/Elymaic.js\": 8933,\n\t\"./Script_Extensions/Ethiopic.js\": 56370,\n\t\"./Script_Extensions/Georgian.js\": 60656,\n\t\"./Script_Extensions/Glagolitic.js\": 22125,\n\t\"./Script_Extensions/Gothic.js\": 56298,\n\t\"./Script_Extensions/Grantha.js\": 86631,\n\t\"./Script_Extensions/Greek.js\": 80161,\n\t\"./Script_Extensions/Gujarati.js\": 41962,\n\t\"./Script_Extensions/Gunjala_Gondi.js\": 46189,\n\t\"./Script_Extensions/Gurmukhi.js\": 8194,\n\t\"./Script_Extensions/Han.js\": 5545,\n\t\"./Script_Extensions/Hangul.js\": 94337,\n\t\"./Script_Extensions/Hanifi_Rohingya.js\": 25890,\n\t\"./Script_Extensions/Hanunoo.js\": 54191,\n\t\"./Script_Extensions/Hatran.js\": 62640,\n\t\"./Script_Extensions/Hebrew.js\": 26210,\n\t\"./Script_Extensions/Hiragana.js\": 4645,\n\t\"./Script_Extensions/Imperial_Aramaic.js\": 47790,\n\t\"./Script_Extensions/Inherited.js\": 65719,\n\t\"./Script_Extensions/Inscriptional_Pahlavi.js\": 58626,\n\t\"./Script_Extensions/Inscriptional_Parthian.js\": 50167,\n\t\"./Script_Extensions/Javanese.js\": 29743,\n\t\"./Script_Extensions/Kaithi.js\": 11958,\n\t\"./Script_Extensions/Kannada.js\": 26161,\n\t\"./Script_Extensions/Katakana.js\": 58831,\n\t\"./Script_Extensions/Kawi.js\": 93386,\n\t\"./Script_Extensions/Kayah_Li.js\": 65916,\n\t\"./Script_Extensions/Kharoshthi.js\": 97319,\n\t\"./Script_Extensions/Khitan_Small_Script.js\": 82273,\n\t\"./Script_Extensions/Khmer.js\": 21654,\n\t\"./Script_Extensions/Khojki.js\": 60840,\n\t\"./Script_Extensions/Khudawadi.js\": 84937,\n\t\"./Script_Extensions/Lao.js\": 3895,\n\t\"./Script_Extensions/Latin.js\": 34462,\n\t\"./Script_Extensions/Lepcha.js\": 55753,\n\t\"./Script_Extensions/Limbu.js\": 82970,\n\t\"./Script_Extensions/Linear_A.js\": 61456,\n\t\"./Script_Extensions/Linear_B.js\": 7475,\n\t\"./Script_Extensions/Lisu.js\": 82841,\n\t\"./Script_Extensions/Lycian.js\": 25245,\n\t\"./Script_Extensions/Lydian.js\": 40610,\n\t\"./Script_Extensions/Mahajani.js\": 71461,\n\t\"./Script_Extensions/Makasar.js\": 90995,\n\t\"./Script_Extensions/Malayalam.js\": 4201,\n\t\"./Script_Extensions/Mandaic.js\": 85976,\n\t\"./Script_Extensions/Manichaean.js\": 61361,\n\t\"./Script_Extensions/Marchen.js\": 51089,\n\t\"./Script_Extensions/Masaram_Gondi.js\": 75850,\n\t\"./Script_Extensions/Medefaidrin.js\": 35394,\n\t\"./Script_Extensions/Meetei_Mayek.js\": 65222,\n\t\"./Script_Extensions/Mende_Kikakui.js\": 56734,\n\t\"./Script_Extensions/Meroitic_Cursive.js\": 48438,\n\t\"./Script_Extensions/Meroitic_Hieroglyphs.js\": 63315,\n\t\"./Script_Extensions/Miao.js\": 89426,\n\t\"./Script_Extensions/Modi.js\": 56126,\n\t\"./Script_Extensions/Mongolian.js\": 48441,\n\t\"./Script_Extensions/Mro.js\": 96237,\n\t\"./Script_Extensions/Multani.js\": 12152,\n\t\"./Script_Extensions/Myanmar.js\": 88384,\n\t\"./Script_Extensions/Nabataean.js\": 22445,\n\t\"./Script_Extensions/Nag_Mundari.js\": 48651,\n\t\"./Script_Extensions/Nandinagari.js\": 54947,\n\t\"./Script_Extensions/New_Tai_Lue.js\": 25650,\n\t\"./Script_Extensions/Newa.js\": 997,\n\t\"./Script_Extensions/Nko.js\": 35334,\n\t\"./Script_Extensions/Nushu.js\": 38408,\n\t\"./Script_Extensions/Nyiakeng_Puachue_Hmong.js\": 53615,\n\t\"./Script_Extensions/Ogham.js\": 72435,\n\t\"./Script_Extensions/Ol_Chiki.js\": 6286,\n\t\"./Script_Extensions/Old_Hungarian.js\": 10512,\n\t\"./Script_Extensions/Old_Italic.js\": 7259,\n\t\"./Script_Extensions/Old_North_Arabian.js\": 79715,\n\t\"./Script_Extensions/Old_Permic.js\": 84513,\n\t\"./Script_Extensions/Old_Persian.js\": 29058,\n\t\"./Script_Extensions/Old_Sogdian.js\": 22883,\n\t\"./Script_Extensions/Old_South_Arabian.js\": 25750,\n\t\"./Script_Extensions/Old_Turkic.js\": 38028,\n\t\"./Script_Extensions/Old_Uyghur.js\": 82038,\n\t\"./Script_Extensions/Oriya.js\": 93543,\n\t\"./Script_Extensions/Osage.js\": 55599,\n\t\"./Script_Extensions/Osmanya.js\": 6499,\n\t\"./Script_Extensions/Pahawh_Hmong.js\": 87093,\n\t\"./Script_Extensions/Palmyrene.js\": 33203,\n\t\"./Script_Extensions/Pau_Cin_Hau.js\": 32175,\n\t\"./Script_Extensions/Phags_Pa.js\": 80475,\n\t\"./Script_Extensions/Phoenician.js\": 88683,\n\t\"./Script_Extensions/Psalter_Pahlavi.js\": 13132,\n\t\"./Script_Extensions/Rejang.js\": 10643,\n\t\"./Script_Extensions/Runic.js\": 92370,\n\t\"./Script_Extensions/Samaritan.js\": 62803,\n\t\"./Script_Extensions/Saurashtra.js\": 69504,\n\t\"./Script_Extensions/Sharada.js\": 57957,\n\t\"./Script_Extensions/Shavian.js\": 15581,\n\t\"./Script_Extensions/Siddham.js\": 45898,\n\t\"./Script_Extensions/SignWriting.js\": 73338,\n\t\"./Script_Extensions/Sinhala.js\": 54400,\n\t\"./Script_Extensions/Sogdian.js\": 69554,\n\t\"./Script_Extensions/Sora_Sompeng.js\": 82168,\n\t\"./Script_Extensions/Soyombo.js\": 55339,\n\t\"./Script_Extensions/Sundanese.js\": 17361,\n\t\"./Script_Extensions/Syloti_Nagri.js\": 7453,\n\t\"./Script_Extensions/Syriac.js\": 49190,\n\t\"./Script_Extensions/Tagalog.js\": 78050,\n\t\"./Script_Extensions/Tagbanwa.js\": 6896,\n\t\"./Script_Extensions/Tai_Le.js\": 30486,\n\t\"./Script_Extensions/Tai_Tham.js\": 43272,\n\t\"./Script_Extensions/Tai_Viet.js\": 2338,\n\t\"./Script_Extensions/Takri.js\": 15222,\n\t\"./Script_Extensions/Tamil.js\": 25234,\n\t\"./Script_Extensions/Tangsa.js\": 14113,\n\t\"./Script_Extensions/Tangut.js\": 12606,\n\t\"./Script_Extensions/Telugu.js\": 60209,\n\t\"./Script_Extensions/Thaana.js\": 34190,\n\t\"./Script_Extensions/Thai.js\": 24815,\n\t\"./Script_Extensions/Tibetan.js\": 65333,\n\t\"./Script_Extensions/Tifinagh.js\": 98578,\n\t\"./Script_Extensions/Tirhuta.js\": 25740,\n\t\"./Script_Extensions/Toto.js\": 20190,\n\t\"./Script_Extensions/Ugaritic.js\": 41418,\n\t\"./Script_Extensions/Vai.js\": 95619,\n\t\"./Script_Extensions/Vithkuqi.js\": 4862,\n\t\"./Script_Extensions/Wancho.js\": 80134,\n\t\"./Script_Extensions/Warang_Citi.js\": 61158,\n\t\"./Script_Extensions/Yezidi.js\": 25,\n\t\"./Script_Extensions/Yi.js\": 47685,\n\t\"./Script_Extensions/Zanabazar_Square.js\": 92290,\n\t\"./index.js\": 31714,\n\t\"./unicode-version.js\": 35362\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 38531;","var parent = require('../../stable/object/assign');\n\nmodule.exports = parent;\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","module.exports = require('../../full/object/assign');\n","var parent = require('../../actual/object/assign');\n\nmodule.exports = parent;\n","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 isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\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 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 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","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 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 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 uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\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 getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\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 $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","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\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","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 global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\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","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\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","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","var parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals() {\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGoogleAnalytics(data);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\n\nfunction sendToGoogleAnalytics({\n name,\n value,\n id\n}) {\n window.ga(`send`, `event`, {\n eventCategory: `Web Vitals`,\n eventAction: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n eventLabel: id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n eventValue: Math.round(name === `CLS` ? value * 1000 : value),\n // Use a non-interaction event to avoid affecting bounce rate.\n nonInteraction: true,\n // Use `sendBeacon()` if the browser supports it.\n transport: `beacon`\n });\n}\n\nexport const onRouteUpdate = ({\n location\n}, pluginOptions = {}) => {\n const ga = window.ga;\n\n if (process.env.NODE_ENV !== `production` || typeof ga !== `function`) {\n return null;\n }\n\n const pathIsExcluded = location && typeof window.excludeGAPaths !== `undefined` && window.excludeGAPaths.some(rx => rx.test(location.pathname));\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n const sendPageView = () => {\n const pagePath = location ? location.pathname + location.search + location.hash : undefined;\n ga(`set`, `page`, pagePath);\n ga(`send`, `pageview`);\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n const delay = Math.max(32, pluginOptions.pageTransitionDelay || 0);\n setTimeout(sendPageView, delay);\n return null;\n};\nexport function onInitialClientRender(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` && typeof ga === `function` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals();\n }\n}","import React, { useEffect } from 'react'\r\nimport { graphql, StaticQuery } from 'gatsby'\r\nimport styled, { createGlobalStyle } from '@xstyled/styled-components'\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n #carbonads {\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu,\r\n Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n }\r\n\r\n #carbonads {\r\n display: inline-flex;\r\n background-color: background-light;\r\n border: 1;\r\n border-color: layout-border;\r\n box-shadow: none;\r\n }\r\n\r\n #carbonads a {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n #carbonads a:hover {\r\n color: inherit;\r\n }\r\n\r\n #carbonads span {\r\n position: relative;\r\n display: block;\r\n overflow: hidden;\r\n }\r\n\r\n #carbonads .carbon-wrap {\r\n display: flex;\r\n }\r\n\r\n .carbon-img {\r\n display: block;\r\n margin: 0;\r\n line-height: 1;\r\n }\r\n\r\n .carbon-img img {\r\n display: block;\r\n }\r\n\r\n .carbon-text {\r\n font-size: 13px;\r\n padding: 10px;\r\n line-height: 1.5;\r\n text-align: left;\r\n }\r\n\r\n .carbon-poweredby {\r\n display: block;\r\n padding: 8px 10px;\r\n background: repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4);\r\n text-align: center;\r\n text-transform: uppercase;\r\n letter-spacing: .5px;\r\n font-weight: 600;\r\n font-size: 9px;\r\n line-height: 1;\r\n }\r\n`\r\n\r\nconst QUERY = graphql`\r\n query CodeFund {\r\n site {\r\n siteMetadata {\r\n carbonAdsURL\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst AdContainer = styled.aside`\r\n display: block;\r\n height: 125;\r\n min-width: 1;\r\n margin: 3 0;\r\n`\r\n\r\nfunction InnerCarbonAd({ url }) {\r\n const ref = React.useRef()\r\n useEffect(() => {\r\n const wrapper = ref.current\r\n const script = document.createElement('script')\r\n script.src = url\r\n script.async = true\r\n script.id = '_carbonads_js'\r\n wrapper.appendChild(script)\r\n return () => {\r\n wrapper.removeChild(script)\r\n }\r\n }, [url])\r\n return (\r\n <>\r\n \r\n
\r\n >\r\n )\r\n}\r\n\r\nexport function CarbonAd() {\r\n return (\r\n \r\n data.site.siteMetadata.carbonAdsURL ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n />\r\n )\r\n}\r\n","import styled, { up, css } from '@xstyled/styled-components'\r\n\r\nexport const TableContainer = styled.div`\r\n overflow-y: auto;\r\n margin: 3 0 2;\r\n\r\n ${up(\r\n 'lg',\r\n css`\r\n max-height: 480;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Table = styled.table`\r\n width: 100%;\r\n text-align: left;\r\n border-collapse: collapse;\r\n font-size: 90%;\r\n\r\n tr {\r\n background-color: transparent;\r\n }\r\n\r\n td,\r\n th {\r\n padding: 2 3;\r\n }\r\n\r\n th {\r\n color: on-background-light;\r\n background-color: background-light;\r\n font-weight: 600;\r\n z-index: 20;\r\n position: sticky;\r\n top: 0;\r\n }\r\n\r\n td {\r\n font-size: 85%;\r\n border-top: 1;\r\n border-bottom: 1;\r\n border-color: layout-border;\r\n }\r\n`\r\n","import React from 'react'\r\nimport { MDXProvider as BaseMDXProvider } from '@mdx-js/react'\r\nimport { Code } from './Code'\r\nimport { CarbonAd } from './CarbonAd'\r\nimport { Table, TableContainer } from './Table'\r\n\r\nfunction transformCode({ children, className, ...props }) {\r\n const lang = className && className.split('-')[1]\r\n return (\r\n \r\n {children}\r\n
\r\n )\r\n}\r\n\r\nfunction getCodeChild(children) {\r\n const childrenArray = React.Children.toArray(children)\r\n if (childrenArray.length !== 1) return null\r\n const [firstChild] = childrenArray\r\n if (firstChild.type !== 'code') return null\r\n return firstChild\r\n}\r\n\r\nexport const mdxComponents = {\r\n 'carbon-ad': () => ,\r\n pre: ({ children }) => {\r\n const codeChild = getCodeChild(children)\r\n return codeChild ? transformCode(codeChild.props) : {children} \r\n },\r\n table: ({ children }) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n },\r\n}\r\n\r\nexport function MDXProvider({ children, components }) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols; // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n} // @private\n\n\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n } // prettier-ignore\n\n\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n/**\n * Check if a string ends with something\n * @private\n */\n\n\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\nvar pixelsto = pxtoFactory;\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em = /*#__PURE__*/pixelsto('em');\nvar em$1 = em;\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\n\nvar rem = /*#__PURE__*/pixelsto('rem');\nvar rem$1 = rem;\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\n\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\n\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\n\n\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\n\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings; // Error Handling\n\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\n\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\n\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\n\n\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\n\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\n\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n/* eslint-disable key-spacing */\n\n\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\n\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n\n\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n} // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\n\n\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\nvar curriedDarken$1 = curriedDarken;\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\nvar curriedLighten$1 = curriedLighten;\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\nvar mix$1 = curriedMix;\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar curriedOpacify$1 = curriedOpacify;\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\n\n\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\nvar curriedShade$1 = curriedShade;\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\nvar curriedTint$1 = curriedTint;\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Allow single or multiple animations passed\n\n\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\n\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\n\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\n\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\n\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\n\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\n\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\n\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\n\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import { transparentize } from 'polished'\r\nimport { css, th, defaultTheme, aliasColor } from '@xstyled/styled-components'\r\n\r\nexport function primaryColor(color) {\r\n return aliasColor('primary', color)\r\n}\r\n\r\nexport const theme = {\r\n initialColorModeName: 'light',\r\n ...defaultTheme,\r\n global: css`\r\n html,\r\n body {\r\n transition: 300ms ease-in color, 300ms ease-in background-color;\r\n margin: 0;\r\n font-family: base;\r\n background-color: background;\r\n color: on-background;\r\n line-height: base;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n }\r\n \r\n img {\r\n display: inline-block;\r\n }\r\n\r\n :focus {\r\n outline-color: primary-500;\r\n }\r\n blockquote.quote {\r\n background-color: var(--xstyled-colors-editor-background,#18181b);\r\n margin: 3vw 3vw;\r\n box-sizing: border-box;\r\n position: relative;\r\n font-size: 24px;\r\n padding: 1vw 5vw;\r\n border-radius: 8px;\r\n \r\n font-style: italic;\r\n }\r\n @media (min-width: 768px) {\r\n blockquote.quote:before {\r\n width: 6vw;\r\n height: 7vw;\r\n top: 50%;\r\n left: 0;\r\n transform: translate(-50%, -50%);\r\n }\r\n }\r\n blockquote.quote:before {\r\n content: \"\";\r\n background-image: url(/resources/quote.svg);\r\n position: absolute;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n }\r\n .xstyled-color-mode-light blockquote.quote {\r\n color: black;\r\n background-color: #d4d4d8;\r\n border-color: #a8a8af;\r\n }\r\n \r\n .wide-feature-text h3 {\r\n font-size: 38px;\r\n text-align: center;\r\n }\r\n .wide-feature-text p {\r\n font-size: 24px;\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text ul {\r\n font-size: 24px;\r\n list-style-type: \"👉 \";\r\n margin-left: 3rem;\r\n }\r\n .wide-feature-text li {\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text strong,\r\n strong.orange {\r\n color: #F2A41F;\r\n // font-weight: normal;\r\n }\r\n \r\n .home-screenshots {\r\n margin-bottom: 2rem;\r\n }\r\n .home-screenshots h2 {\r\n font-size: 34px;\r\n font-weight: 400;\r\n margin-top: 3rem;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n .home-screenshots img {\r\n width: 80%;\r\n }\r\n \r\n \r\n .home-links {\r\n text-align: center;\r\n display: flex;\r\n }\r\n .home-links > * {\r\n width:30%;\r\n padding: 1rem;\r\n }\r\n\r\n .home-links a {\r\n color: var(--xstyled-colors-on-background, #ffffff)!important;\r\n }\r\n \r\n h3 {\r\n font-size: 1.17em;\r\n margin-bottom: 0.5em;\r\n }\r\n \r\n .carousel__back-button, .carousel__next-button {\r\n background: transparent;\r\n }\r\n\r\n `,\r\n 'prism-theme': () => ({\r\n styles: [\r\n {\r\n types: ['comment'],\r\n style: {\r\n color: 'rgb(106, 171, 115)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['line-comment'],\r\n style: {\r\n color: 'rgb(99,103,100)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['zdl-keyword', 'keyword'],\r\n style: {\r\n color: 'rgb(207, 142, 107)',\r\n },\r\n },\r\n {\r\n types: ['zdl-annotation', 'zdl-validation'],\r\n style: {\r\n color: 'rgb(179, 174, 96)',\r\n },\r\n },\r\n {\r\n types: ['zdl-class-name'],\r\n style: {\r\n color: 'rgb(102,127,209)',\r\n },\r\n },\r\n {\r\n types: ['zdl-field'],\r\n style: {\r\n color: 'rgb(198, 120, 221)',\r\n },\r\n },\r\n {\r\n types: ['punctuation'],\r\n style: {\r\n color: 'rgb(230,233,236)', // fixme\r\n },\r\n },\r\n {\r\n types: ['boolean', 'bool', 'char', 'number'],\r\n style: {\r\n color: 'rgb(33,51,157)',// fixme\r\n },\r\n },\r\n {\r\n types: ['tag'],\r\n style: {\r\n color: 'rgb(229, 192, 123)',\r\n },\r\n },\r\n {\r\n types: ['operator'],\r\n style: {\r\n color: 'rgb(171, 178, 191)',\r\n },\r\n },\r\n {\r\n types: ['string'],\r\n style: {\r\n color: 'rgb(152, 195, 121)',\r\n },\r\n },\r\n {\r\n types: ['attr-name', 'comment'],\r\n style: {\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['function'],\r\n style: {\r\n color: 'rgb(97, 175, 239)',\r\n },\r\n },\r\n ],\r\n }),\r\n fonts: {\r\n base: '-apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif',\r\n },\r\n lineHeights: {\r\n base: 1.4,\r\n control: th.lineHeight('base'),\r\n },\r\n transitions: {\r\n base: '300ms ease all',\r\n fast: '150ms cubic-bezier(0.215, 0.61, 0.355, 1) all',\r\n control: th.transition('base'),\r\n },\r\n radii: {\r\n base: 4,\r\n control: th.radius('base'),\r\n editor: th.radius('base'),\r\n blockquote: th.radius('base'),\r\n },\r\n borderWidths: {\r\n base: 1,\r\n control: th.borderWidth('base'),\r\n },\r\n shadows: {\r\n focus: (p) => `0 0 0 ${th.px(2)(p)} ${th.color('primary-a500')(p)}`,\r\n 'control-focus': th.shadow('focus'),\r\n },\r\n sizes: {\r\n screen: 1669, // 1440,\r\n },\r\n space: {\r\n 0: 0,\r\n 1: 4,\r\n 2: 8,\r\n 3: 16,\r\n 4: 24,\r\n 5: 48,\r\n 6: 96,\r\n 7: 144,\r\n 8: 192,\r\n 9: 240,\r\n 'preview-padding-y': 16,\r\n 'preview-padding-x': 24,\r\n },\r\n colors: {\r\n ...defaultTheme.colors,\r\n\r\n // Primary = indigo\r\n ...aliasColor('primary', 'indigo'),\r\n\r\n primary: th.color('primary-500'),\r\n 'primary-a500': (p) => transparentize(0.5, th.color('primary-500')(p)),\r\n\r\n background: th.color('white'),\r\n 'background-light': th.color('gray-100'),\r\n 'background-primary': th.color('primary-100'),\r\n 'background-mark': th.color('yellow-200'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('black'),\r\n 'on-background-light': th.color('gray-700'),\r\n 'on-background-primary': th.color('primary-700'),\r\n 'on-background-primary-dark': th.color('primary-800'),\r\n\r\n 'layout-border': th.color('gray-300'),\r\n\r\n 'control-background': th.color('gray-100'),\r\n 'control-placeholder': th.color('gray-600'),\r\n 'control-on': th.color('gray-900'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-400'),\r\n\r\n 'editor-background': th.color('gray-900'),\r\n 'editor-on': th.color('gray-100'),\r\n 'editor-border': th.color('layout-border'),\r\n\r\n 'blockquote-link': th.color('yellow-800'),\r\n 'blockquote-background': th.color('yellow-200'),\r\n 'blockquote-border': th.color('yellow'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-200'),\r\n 'doc-search-suggestion-highlight-on-background': th.color('primary-800'),\r\n 'doc-search-suggestion-content-background': th.color('primary-100'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-700'),\r\n\r\n modes: {\r\n dark: {\r\n background: th.color('gray-900'),\r\n 'editor-background': th.color('black'),\r\n 'background-light': th.color('gray-800'),\r\n 'background-primary': th.color('primary-900'),\r\n 'background-mark': th.color('yellow-500'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('white'),\r\n 'on-background-light': th.color('gray-300'),\r\n 'on-background-primary': th.color('primary-300'),\r\n 'on-background-primary-dark': th.color('primary-200'),\r\n\r\n 'layout-border': th.color('gray-700'),\r\n\r\n 'control-background': th.color('gray-800'),\r\n 'control-placeholder': th.color('gray-400'),\r\n 'control-on': th.color('gray-100'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-600'),\r\n\r\n 'blockquote-link': th.color('yellow-200'),\r\n 'blockquote-background': th.color('yellow-900'),\r\n 'blockquote-border': th.color('yellow-300'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-800'),\r\n 'doc-search-suggestion-highlight-on-background':\r\n th.color('primary-200'),\r\n 'doc-search-suggestion-content-background': th.color('primary-900'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-300'),\r\n },\r\n },\r\n },\r\n}\r\n","import React from 'react'\r\nimport {\r\n createGlobalStyle,\r\n ThemeProvider as SCThemeProvider,\r\n th,\r\n} from '@xstyled/styled-components'\r\nimport { theme } from '../theme'\r\n\r\nexport const GlobalStyle = createGlobalStyle`\r\n ${th('global')}\r\n`\r\n\r\nexport function ThemeProvider({ children }) {\r\n return {children} \r\n}\r\n","import React from 'react'\r\nimport { ColorModeProvider, Preflight } from '@xstyled/styled-components'\r\nimport { MDXProvider } from './MDX'\r\nimport { GlobalStyle, ThemeProvider } from './Theme'\r\n\r\nexport function RootWrapper({ children }) {\r\n return (\r\n \r\n \r\n \r\n \r\n {children} \r\n \r\n \r\n )\r\n}\r\n","import { useDisclosureState } from '../disclosure/disclosure-state.js';\n/**\n * Provides state for the `Dialog` components.\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Open dialog \n * Content \n * ```\n */\n\nfunction useDialogState(props) {\n if (props === void 0) {\n props = {};\n }\n\n const disclosure = useDisclosureState(props);\n return disclosure;\n}\n\nexport { useDialogState };","import { useRef, useState, useCallback, useMemo } from 'react';\nimport { useControlledState, usePreviousValue } from 'ariakit-utils/hooks';\n/**\n * Provides state for the `Disclosure` components.\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure \n * Content \n * ```\n */\n\nfunction useDisclosureState(_temp) {\n var _props$defaultOpen;\n\n let {\n animated = false,\n ...props\n } = _temp === void 0 ? {} : _temp;\n const disclosureRef = useRef(null);\n const [open, setOpen] = useControlledState((_props$defaultOpen = props.defaultOpen) != null ? _props$defaultOpen : false, props.open, props.setOpen);\n const [contentElement, setContentElement] = useState(null);\n const [animating, setAnimating] = useState(!!animated && open);\n const prevOpen = usePreviousValue(open);\n const mounted = open || animating;\n\n if (animated && !animating && prevOpen !== open) {\n setAnimating(true);\n }\n\n const show = useCallback(() => setOpen(true), [setOpen]);\n const hide = useCallback(() => setOpen(false), [setOpen]);\n const toggle = useCallback(() => setOpen(v => !v), [setOpen]);\n const stopAnimation = useCallback(() => setAnimating(false), []);\n const state = useMemo(() => ({\n disclosureRef,\n open,\n mounted,\n animated,\n animating,\n contentElement,\n setContentElement,\n setOpen,\n show,\n hide,\n toggle,\n stopAnimation\n }), [open, mounted, animated, animating, contentElement, setContentElement, setOpen, show, hide, toggle, stopAnimation]);\n return state;\n}\n\nexport { useDisclosureState };","import { useState } from 'react';\nimport { useId, useSafeLayoutEffect, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { flushSync } from 'react-dom';\n\nfunction afterTimeout(timeoutMs, cb) {\n const timeoutId = setTimeout(cb, timeoutMs);\n return () => clearTimeout(timeoutId);\n}\n\nfunction afterPaint(cb) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\n\nfunction parseCSSTime() {\n for (var _len = arguments.length, times = new Array(_len), _key = 0; _key < _len; _key++) {\n times[_key] = arguments[_key];\n }\n\n return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n const currentTime = parseFloat(currentTimeString || \"0s\") * 1000; // When multiple times are specified, we want to use the longest one so we\n // wait until the longest transition has finished.\n\n if (currentTime > longestTime) return currentTime;\n return longestTime;\n }, 0);\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosureContent({ state });\n * Disclosure \n * Content \n * ```\n */\n\n\nconst useDisclosureContent = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n const id = useId(props.id);\n const [transition, setTransition] = useState(null);\n useSafeLayoutEffect(() => {\n var _state$contentElement;\n\n if (!state.animated) return; // When the disclosure content element is rendered in a portal, we need to\n // wait for the portal to be mounted and connected to the DOM before we\n // can start the animation.\n\n if (!((_state$contentElement = state.contentElement) != null && _state$contentElement.isConnected)) {\n setTransition(null);\n return;\n } // Double requestAnimationFrame is necessary here to avoid potential bugs\n // when the data attribute is added before the element is fully rendered\n // in the DOM, which wouldn't trigger the animation.\n\n\n return afterPaint(() => {\n setTransition(state.open ? \"enter\" : \"leave\");\n });\n }, [state.animated, state.contentElement, state.open]);\n useSafeLayoutEffect(() => {\n if (!state.animated) return;\n if (!state.contentElement) return;\n if (!transition) return;\n if (transition === \"enter\" && !state.open) return;\n if (transition === \"leave\" && state.open) return; // When the animated state is a number, the user has manually set the\n // animation timeout, so we just respect it.\n\n if (typeof state.animated === \"number\") {\n const timeoutMs = state.animated;\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n } // Otherwise, we need to parse the CSS transition/animation duration and\n // delay to know when the animation ends. This is safer than relying on\n // the transitionend/animationend events because it's not guaranteed that\n // these events will fire. For example, if the element is removed from the\n // DOM before the animation ends or if the animation wasn't triggered in\n // the first place, the events won't fire.\n\n\n const {\n transitionDuration,\n animationDuration,\n transitionDelay,\n animationDelay\n } = getComputedStyle(state.contentElement);\n const delay = parseCSSTime(transitionDelay, animationDelay);\n const duration = parseCSSTime(transitionDuration, animationDuration);\n const timeoutMs = delay + duration; // If the animation/transition delay and duration are 0, this means the\n // element is not animated with CSS (they may be using framer-motion,\n // react-spring, or something else). In this case, the user is responsible\n // for calling `stopAnimation` when the animation ends.\n\n if (!timeoutMs) return; // TODO: We should probably warn if `stopAnimation` hasn't been called\n // after X seconds.\n\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n }, [state.animated, state.contentElement, transition, state.open, state.stopAnimation]);\n const style = state.mounted || props.hidden === false ? props.style : { ...props.style,\n display: \"none\"\n };\n props = {\n id,\n \"data-enter\": transition === \"enter\" ? \"\" : undefined,\n \"data-leave\": transition === \"leave\" ? \"\" : undefined,\n hidden: !state.mounted,\n ...props,\n ref: useForkRef(id ? state.setContentElement : null, props.ref),\n style\n };\n return props;\n});\n/**\n * A component that renders an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure \n * Content \n * ```\n */\n\nconst DisclosureContent = createComponent(props => {\n const htmlProps = useDisclosureContent(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DisclosureContent.displayName = \"DisclosureContent\";\n}\n\nexport { DisclosureContent, useDisclosureContent };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component. When applying the props returned by this hook to a\n * component, the component will be visually hidden, but still accessible to\n * screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * const props = useVisuallyHidden();\n * \n * Learn more about the Solar System .\n * \n * ```\n */\n\nconst useVisuallyHidden = createHook(props => {\n props = { ...props,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n ...props.style\n }\n };\n return props;\n});\n/**\n * A component that renders an element that's visually hidden, but still\n * accessible to screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * \n * Learn more about the Solar System .\n * \n * ```\n */\n\nconst VisuallyHidden = createComponent(props => {\n const htmlProps = useVisuallyHidden(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n VisuallyHidden.displayName = \"VisuallyHidden\";\n}\n\nexport { VisuallyHidden, useVisuallyHidden };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useVisuallyHidden } from '../visually-hidden/visually-hidden.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * const props = useFocusTrap();\n * \n * ```\n */\n\nconst useFocusTrap = createHook(props => {\n props = {\n \"data-focus-trap\": \"\",\n tabIndex: 0,\n \"aria-hidden\": true,\n ...props,\n style: {\n // Prevents unintended scroll jumps.\n position: \"fixed\",\n top: 0,\n left: 0,\n ...props.style\n }\n };\n props = useVisuallyHidden(props);\n return props;\n});\n/**\n * A component that renders a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * \n * ```\n */\n\nconst FocusTrap = createComponent(props => {\n const htmlProps = useFocusTrap(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrap.displayName = \"FocusTrap\";\n}\n\nexport { FocusTrap, useFocusTrap };","import { useRef } from 'react';\nimport { getAllTabbableIn } from 'ariakit-utils/focus';\nimport { useWrapElement, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { FocusTrap } from './focus-trap.js';\nimport { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nconst useFocusTrapRegion = createHook(_ref => {\n let {\n enabled = false,\n ...props\n } = _ref;\n const ref = useRef(null);\n props = useWrapElement(props, element => {\n const renderFocusTrap = () => {\n if (!enabled) return null;\n return /*#__PURE__*/jsx(FocusTrap, {\n onFocus: event => {\n const container = ref.current;\n if (!container) return;\n const tabbables = getAllTabbableIn(container, true);\n const first = tabbables[0];\n const last = tabbables[tabbables.length - 1]; // Fallbacks to the container element\n\n if (!tabbables.length) {\n container.focus();\n return;\n }\n\n if (event.relatedTarget === first) {\n last == null ? void 0 : last.focus();\n } else {\n first == null ? void 0 : first.focus();\n }\n }\n });\n };\n\n return /*#__PURE__*/jsxs(Fragment, {\n children: [renderFocusTrap(), element, renderFocusTrap()]\n });\n }, [enabled]);\n props = { ...props,\n ref: useForkRef(ref, props.ref)\n };\n return props;\n});\n/**\n * A component that renders a focus trap region element.\n * @see https://ariakit.org/components/focus-trap-region\n * @example\n * ```jsx\n * \n * click me \n * trap focus \n * disabled Button \n * \n * ```\n */\n\nconst FocusTrapRegion = createComponent(props => {\n const htmlProps = useFocusTrapRegion(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrapRegion.displayName = \"FocusTrapRegion\";\n}\n\nexport { FocusTrapRegion, useFocusTrapRegion };","import { createContext } from 'react';\nconst HeadingContext = /*#__PURE__*/createContext(0);\nexport { HeadingContext as H };","import { useContext } from 'react';\nimport { H as HeadingContext } from '../__utils-5a52896b.js';\nimport { jsx } from 'react/jsx-runtime';\n\nfunction HeadingLevel(_ref) {\n let {\n level,\n children\n } = _ref;\n const contextLevel = useContext(HeadingContext);\n const nextLevel = Math.max(Math.min(level || contextLevel + 1, 6), 1);\n return /*#__PURE__*/jsx(HeadingContext.Provider, {\n value: nextLevel,\n children: children\n });\n}\n\nexport { HeadingLevel };","import { createContext } from 'react';\n/**\n * Stores the element that will contain the portal. By default, it will be the\n * body of the document.\n * @example\n * ```jsx\n * const container = document.getElementById(\"container\");\n *\n * function App() {\n * return (\n * \n * \n * \n * );\n * }\n * ```\n */\n\nconst PortalContext = /*#__PURE__*/createContext(null);\nexport { PortalContext };","import { useRef, useContext, useState, useEffect } from 'react';\nimport { getDocument } from 'ariakit-utils/dom';\nimport { isFocusEventOutside } from 'ariakit-utils/events';\nimport { getNextTabbable, getPreviousTabbable, restoreFocusIn, disableFocusIn } from 'ariakit-utils/focus';\nimport { useForkRef, useSafeLayoutEffect, useWrapElement } from 'ariakit-utils/hooks';\nimport { setRef, queueMicrotask } from 'ariakit-utils/misc';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { createPortal } from 'react-dom';\nimport { PortalContext } from './portal-context.js';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { FocusTrap } from '../focus-trap/focus-trap.js';\n\nfunction getRootElement(element) {\n return getDocument(element).body;\n}\n\nfunction getPortalElement(element, portalElement) {\n if (!portalElement) {\n return getDocument(element).createElement(\"div\");\n }\n\n if (typeof portalElement === \"function\") {\n return portalElement(element);\n }\n\n return portalElement;\n}\n\nfunction getRandomId(prefix) {\n if (prefix === void 0) {\n prefix = \"id\";\n }\n\n return \"\" + (prefix ? prefix + \"-\" : \"\") + Math.random().toString(36).substr(2, 6);\n}\n\nfunction queueFocus(element) {\n queueMicrotask(() => {\n element == null ? void 0 : element.focus();\n });\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * const props = usePortal();\n * Content \n * ```\n */\n\n\nconst usePortal = createHook(_ref => {\n let {\n preserveTabOrder,\n portalElement,\n portalRef,\n portal = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const refProp = useForkRef(ref, props.ref);\n const context = useContext(PortalContext);\n const [portalNode, setPortalNode] = useState(null);\n const beforeOutsideRef = useRef(null);\n const beforeInsideRef = useRef(null);\n const afterInsideRef = useRef(null);\n const afterOutsideRef = useRef(null); // Create the portal node and attach it to the DOM.\n\n useSafeLayoutEffect(() => {\n const element = ref.current;\n\n if (!element || !portal) {\n setPortalNode(null);\n return;\n }\n\n const portalEl = getPortalElement(element, portalElement); // TODO: Warn about portals as the document.body element.\n\n if (!portalEl) {\n setPortalNode(null);\n return;\n }\n\n const isPortalInDocument = portalEl.isConnected;\n\n if (!isPortalInDocument) {\n const rootElement = context || getRootElement(element);\n rootElement.appendChild(portalEl);\n } // If the portal element doesn't have an id already, set one.\n\n\n if (!portalEl.id) {\n // Use the element's id so rendering will\n // produce predictable results.\n portalEl.id = element.id ? element.id + \"-portal\" : getRandomId();\n } // Set the internal portal node state and the portalRef prop.\n\n\n setPortalNode(portalEl);\n setRef(portalRef, portalEl); // If the portal element was already in the document, we don't need to\n // remove it when the element is unmounted, so we just return.\n\n if (isPortalInDocument) return; // Otherwise, we need to remove the portal from the DOM.\n\n return () => {\n portalEl.remove();\n setRef(portalRef, null);\n };\n }, [portal, portalElement, context, portalRef]); // When preserveTabOrder is true, make sure elements inside the portal\n // element are tabbable only when the portal has already been focused,\n // either by tabbing into a focus trap element outside or using the mouse.\n\n useEffect(() => {\n if (!portalNode) return;\n if (!preserveTabOrder) return;\n let raf = 0;\n\n const onFocus = event => {\n if (isFocusEventOutside(event)) {\n const focusing = event.type === \"focusin\";\n if (focusing) return restoreFocusIn(portalNode); // Wait for the next frame to allow tabindex changes after the focus\n // event.\n\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n disableFocusIn(portalNode, true);\n });\n }\n }; // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n\n\n portalNode.addEventListener(\"focusin\", onFocus, true);\n portalNode.addEventListener(\"focusout\", onFocus, true);\n return () => {\n portalNode.removeEventListener(\"focusin\", onFocus, true);\n portalNode.removeEventListener(\"focusout\", onFocus, true);\n };\n }, [portalNode, preserveTabOrder]);\n props = useWrapElement(props, element => {\n element =\n /*#__PURE__*/\n // While the portal node is not in the DOM, we need to pass the\n // current context to the portal context, otherwise it's going to\n // reset to the body element on nested portals.\n jsx(PortalContext.Provider, {\n value: portalNode || context,\n children: element\n });\n if (!portal) return element;\n\n if (!portalNode) {\n // If the element should be rendered within a portal, but the portal\n // node is not yet in the DOM, we'll return an empty div element. We\n // assign the id to the element so we can use it to set the portal id\n // later on. We're using position: fixed here so that the browser\n // doesn't add margin to the element when setting gap on a parent\n // element.\n return /*#__PURE__*/jsx(\"span\", {\n ref: refProp,\n id: props.id,\n style: {\n position: \"fixed\"\n }\n });\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getNextTabbable());\n } else {\n queueFocus(beforeOutsideRef.current);\n }\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getPreviousTabbable());\n } else {\n queueFocus(afterOutsideRef.current);\n }\n }\n })]\n });\n\n if (portalNode) {\n element = /*#__PURE__*/createPortal(element, portalNode);\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(beforeInsideRef.current);\n } else {\n queueFocus(getPreviousTabbable());\n }\n }\n }), preserveTabOrder &&\n /*#__PURE__*/\n // We're using position: fixed here so that the browser doesn't\n // add margin to the element when setting gap on a parent element.\n jsx(\"span\", {\n \"aria-owns\": portalNode == null ? void 0 : portalNode.id,\n style: {\n position: \"fixed\"\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(afterInsideRef.current);\n } else {\n queueFocus(getNextTabbable());\n }\n }\n })]\n });\n return element;\n }, [portalNode, context, portal, props.id, preserveTabOrder]);\n props = { ...props,\n ref: refProp\n };\n return props;\n});\n/**\n * A component that renders an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * Content \n * ```\n */\n\nconst Portal = createComponent(props => {\n const htmlProps = usePortal(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n}\n\nexport { Portal, usePortal };","import { createContext } from 'react';\nconst DialogContext = /*#__PURE__*/createContext(undefined);\nconst DialogHeadingContext = /*#__PURE__*/createContext(undefined);\nconst DialogDescriptionContext = /*#__PURE__*/createContext(undefined);\nexport { DialogContext as D, DialogHeadingContext as a, DialogDescriptionContext as b };","import { useRef, useEffect, useMemo, useCallback, useContext, useState, createContext } from 'react';\nimport { getDocument, contains, getActiveElement, getWindow, isButton, closest } from 'ariakit-utils/dom';\nimport { addGlobalEventListener, isSelfTarget, queueBeforeEvent } from 'ariakit-utils/events';\nimport { getFirstTabbableIn, focusIfNeeded, isFocusable } from 'ariakit-utils/focus';\nimport { useSafeLayoutEffect, useBooleanEvent, useEvent, useForkRef, useForceUpdate, useLiveRef, usePortalRef, useId, useWrapElement } from 'ariakit-utils/hooks';\nimport { noop, chain } from 'ariakit-utils/misc';\nimport { isApple, isMac, isSafari } from 'ariakit-utils/platform';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosureContent } from '../disclosure/disclosure-content.js';\nimport { useFocusTrapRegion } from '../focus-trap/focus-trap-region.js';\nimport { useFocusable } from '../focusable/focusable.js';\nimport { HeadingLevel } from '../heading/heading-level.js';\nimport { usePortal } from '../portal/portal.js';\nimport { jsx } from 'react/jsx-runtime';\nimport { D as DialogContext, a as DialogHeadingContext, b as DialogDescriptionContext } from '../dialog-context-f963dd70.js';\nimport { flushSync } from 'react-dom';\n\nfunction usePreviousMouseDownRef(enabled) {\n const previousMouseDownRef = useRef();\n useEffect(() => {\n if (!enabled) {\n previousMouseDownRef.current = null;\n return;\n }\n\n const onMouseDown = event => {\n previousMouseDownRef.current = event.target;\n };\n\n return addGlobalEventListener(\"mousedown\", onMouseDown, true);\n }, [enabled]);\n return previousMouseDownRef;\n}\n\nfunction DialogBackdrop(_ref) {\n var _state$contentElement;\n\n let {\n state,\n backdrop,\n backdropProps,\n hideOnInteractOutside = true,\n hideOnEscape = true,\n hidden,\n children\n } = _ref;\n const ref = useRef(null);\n state = useMemo(() => ({ ...state,\n // Override the setContentElement method to prevent the backdrop from\n // overwriting the dialog's content element.\n setContentElement: noop\n }), [state]);\n useSafeLayoutEffect(() => {\n const backdrop = ref.current;\n const dialog = state.contentElement;\n if (!backdrop) return;\n if (!dialog) return;\n backdrop.style.zIndex = getComputedStyle(dialog).zIndex;\n }, [state.contentElement]);\n const onClickProp = backdropProps == null ? void 0 : backdropProps.onClick;\n const hideOnInteractOutsideProp = useBooleanEvent(hideOnInteractOutside);\n const previousMouseDownRef = usePreviousMouseDownRef(state.mounted);\n const onClick = useEvent(event => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (previousMouseDownRef.current !== event.currentTarget) return;\n if (!hideOnInteractOutsideProp(event)) return;\n event.stopPropagation();\n state.hide();\n });\n const onKeyDownProp = backdropProps == null ? void 0 : backdropProps.onKeyDown;\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // When hideOnInteractOutside is false and the backdrop is clicked, the\n // backdrop will receive focus (because we set the tabIndex on it). Therefore,\n // the Escape key will not be captured by the Dialog component. So we listen\n // to it here.\n\n const onKeyDown = useEvent(event => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Escape\") return;\n if (!isSelfTarget(event)) return;\n if (!hideOnEscapeProp(event)) return;\n state.hide();\n });\n const props = useDisclosureContent({\n state,\n id: undefined,\n role: \"presentation\",\n tabIndex: -1,\n hidden,\n ...backdropProps,\n ref: useForkRef(backdropProps == null ? void 0 : backdropProps.ref, ref),\n onClick,\n onKeyDown,\n style: {\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...(backdropProps == null ? void 0 : backdropProps.style)\n }\n });\n const Component = typeof backdrop !== \"boolean\" ? backdrop || \"div\" : \"div\";\n return /*#__PURE__*/jsx(Component, { ...props,\n \"data-backdrop\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n children: children\n });\n} // We don't need to walk through certain tags.\n\n\nconst ignoreTags = [\"SCRIPT\", \"STYLE\"];\n\nfunction isValidElement(element, ignoredElements) {\n if (ignoreTags.includes(element.tagName)) return false;\n return !ignoredElements.some(enabledElement => enabledElement && contains(element, enabledElement));\n}\n\nfunction walkTreeOutside(elements, callback) {\n for (let element of elements) {\n const document = getDocument(element); // Loops through the parent elements and then through each of their\n // children.\n\n while ((_element = element) != null && _element.parentElement && element !== document.body) {\n var _element;\n\n for (const child of element.parentElement.children) {\n if (isValidElement(child, elements)) {\n callback(child);\n }\n }\n\n element = element.parentElement;\n }\n }\n}\n\nfunction disableElement$1(element) {\n const previousAriaHidden = element.getAttribute(\"aria-hidden\") || \"\";\n element.setAttribute(\"aria-hidden\", \"true\");\n\n const enableElement = () => {\n if (previousAriaHidden) {\n element.setAttribute(\"aria-hidden\", previousAriaHidden);\n } else {\n element.removeAttribute(\"aria-hidden\");\n }\n };\n\n return enableElement;\n}\n\nfunction disableAccessibilityTreeOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement$1(element));\n });\n\n const restoreAccessibilityTree = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restoreAccessibilityTree;\n}\n\nfunction disableElement(element) {\n if (!(\"style\" in element)) return noop;\n const previousPointerEvents = element.style.pointerEvents;\n element.style.pointerEvents = \"none\";\n\n const enableElement = () => {\n element.style.pointerEvents = previousPointerEvents != null ? previousPointerEvents : \"\";\n };\n\n return enableElement;\n}\n\nfunction disablePointerEventsOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement(element));\n });\n\n const restorePointerEvents = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restorePointerEvents;\n}\n\nfunction prependHiddenDismiss(container, onClick) {\n const document = getDocument(container);\n const button = document.createElement(\"button\");\n button.type = \"button\";\n button.tabIndex = -1;\n button.textContent = \"Dismiss popup\"; // Visually hidden styles\n\n button.style.border = \"0px\";\n button.style.clip = \"rect(0 0 0 0)\";\n button.style.height = \"1px\";\n button.style.margin = \"-1px\";\n button.style.overflow = \"hidden\";\n button.style.padding = \"0px\";\n button.style.position = \"absolute\";\n button.style.whiteSpace = \"nowrap\";\n button.style.width = \"1px\";\n button.addEventListener(\"click\", onClick);\n container.prepend(button);\n\n const removeHiddenDismiss = () => {\n button.removeEventListener(\"click\", onClick);\n button.remove();\n };\n\n return removeHiddenDismiss;\n}\n/**\n * Controls which dialog is the champion that will control global behavior such\n * as body scrolling and accessibility tree outside.\n */\n\n\nfunction useChampionDialog(dialogRef, attribute, enabled) {\n const [updated, retry] = useForceUpdate();\n const isChampionDialog = useCallback(() => {\n if (!enabled) return false;\n const dialog = dialogRef.current;\n if (!dialog) return false;\n const {\n body\n } = getDocument(dialog);\n const id = body.getAttribute(attribute);\n return !id || id === dialog.id;\n }, [updated, enabled, attribute]);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!enabled) return;\n const {\n body\n } = getDocument(dialog);\n\n if (!isChampionDialog()) {\n const observer = new MutationObserver(() => flushSync(retry));\n observer.observe(body, {\n attributeFilter: [attribute]\n });\n return () => observer.disconnect();\n }\n\n body.setAttribute(attribute, dialog.id);\n return () => {\n body.removeAttribute(attribute);\n };\n }, [updated, dialogRef, enabled, isChampionDialog, attribute]);\n return isChampionDialog;\n}\n/**\n * When the focused child gets removed from the DOM, we make sure to move focus\n * to the dialog.\n */\n\n\nfunction useFocusOnChildUnmount(dialogRef, state) {\n useEffect(() => {\n if (!state.open) return;\n const dialog = dialogRef.current;\n if (!dialog) return;\n const observer = new MutationObserver(_ref => {\n let [mutation] = _ref;\n if (!mutation) return; // If target is not dialog, then this observer was triggered by a nested\n // dialog, so we just ignore it here and let the nested dialog handle it.\n\n if (mutation.target !== dialog) return;\n const document = getDocument(dialog);\n const activeElement = getActiveElement(dialog); // We can check if the current focused element is the document body.\n\n if (activeElement === document.body) {\n dialog.focus();\n }\n });\n observer.observe(dialog, {\n childList: true,\n subtree: true\n });\n return () => observer.disconnect();\n }, [state.open, dialogRef]);\n}\n\nfunction isInDocument(target) {\n if (target.tagName === \"HTML\") return true;\n return contains(getDocument(target).body, target);\n}\n\nfunction isDisclosure(disclosure, target) {\n if (contains(disclosure, target)) return true;\n const activeId = target.getAttribute(\"aria-activedescendant\");\n\n if (activeId) {\n const activeElement = getDocument(disclosure).getElementById(activeId);\n\n if (activeElement) {\n return contains(disclosure, activeElement);\n }\n }\n\n return false;\n}\n\nfunction isBackdrop$1(dialog, target) {\n if (!dialog) return false;\n if (!target) return false;\n return target.hasAttribute(\"data-backdrop\") && target.getAttribute(\"data-backdrop\") === dialog.id;\n}\n\nfunction dialogContains(target) {\n return dialogRef => {\n const dialog = dialogRef.current;\n if (!dialog) return false;\n if (contains(dialog, target)) return true;\n if (isBackdrop$1(dialog, target)) return true;\n return false;\n };\n}\n\nfunction useEventOutside(_ref) {\n let {\n type,\n listener,\n dialogRef,\n nestedDialogs,\n disclosureRef,\n enabled,\n capture\n } = _ref;\n const callListener = useEvent(listener);\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n useEffect(() => {\n if (!enabled) return;\n\n const onEvent = event => {\n const container = dialogRef.current;\n const disclosure = disclosureRef == null ? void 0 : disclosureRef.current;\n const target = event.target;\n if (!container) return;\n if (!target) return; // When an element is unmounted right after it receives focus, the focus\n // event is triggered after that, when the element isn't part of the\n // current document anymore. We just ignore it.\n\n if (!isInDocument(target)) return; // Event inside dialog\n\n if (contains(container, target)) return; // Event on disclosure\n\n if (disclosure && isDisclosure(disclosure, target)) return; // Event on focus trap\n\n if (target.hasAttribute(\"data-focus-trap\")) return; // Event inside a nested dialog\n\n if (nestedDialogsRef.current.some(dialogContains(target))) return;\n callListener(event);\n };\n\n return addGlobalEventListener(type, onEvent, capture);\n }, [enabled, dialogRef, disclosureRef, callListener, capture]);\n}\n\nfunction shouldHideOnInteractOutside(hideOnInteractOutside, event) {\n if (typeof hideOnInteractOutside === \"function\") {\n return hideOnInteractOutside(event);\n }\n\n return !!hideOnInteractOutside;\n}\n\nfunction useHideOnInteractOutside(dialogRef, nestedDialogs, _ref2) {\n let {\n state,\n modal,\n hideOnInteractOutside,\n enabled = state.open\n } = _ref2;\n const previousMouseDownRef = usePreviousMouseDownRef(enabled);\n const props = {\n disclosureRef: state.disclosureRef,\n enabled,\n dialogRef,\n nestedDialogs,\n capture: true\n };\n useEventOutside({ ...props,\n type: \"mousedown\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (modal && !shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n // If the dialog is modal and the user clicked outside the dialog, but\n // shouldHideOnInteractOutside is false, we don't hide the dialog, but\n // ensure focus is placed on it. Otherwise the focus might end up on an\n // element outside of the dialog or the body element itself.\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n });\n useEventOutside({ ...props,\n type: \"click\",\n listener: event => {\n const previousMouseDown = previousMouseDownRef.current; // If there's no previously mousedown'd element, this probably means that\n // the dialog opened with a mousedown event, and a subsequent click event\n // was dispatched outside of the dialog. See form-select example. We just\n // ignore this.\n\n if (!previousMouseDown) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const dialog = dialogRef.current;\n const draggingFromDialog = dialog && contains(dialog, previousMouseDown); // This prevents the dialog from closing by dragging the cursor (for\n // example, selecting some text inside the dialog and releasing the mouse\n // outside of it). See https://github.com/ariakit/ariakit/issues/1336\n\n if (draggingFromDialog) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"focusin\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n } // Fix for https://github.com/ariakit/ariakit/issues/619\n\n\n if (event.target === getDocument(dialog)) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"contextmenu\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n state.hide();\n }\n });\n}\n\nconst NestedDialogsContext = /*#__PURE__*/createContext({});\n/**\n * Handles nested dialogs.\n */\n\nfunction useNestedDialogs(dialogRef, _ref) {\n let {\n state,\n modal\n } = _ref;\n const context = useContext(NestedDialogsContext);\n const [openModals, setOpenModals] = useState([]);\n const [nestedDialogs, setNestedDialogs] = useState([]);\n const addDialog = useCallback(ref => {\n const removeFromContext = context.addDialog == null ? void 0 : context.addDialog(ref);\n setNestedDialogs(dialogs => [...dialogs, ref]);\n return () => {\n removeFromContext == null ? void 0 : removeFromContext();\n setNestedDialogs(dialogs => dialogs.filter(dialog => dialog !== ref));\n };\n }, [context.addDialog]);\n const showModal = useCallback(ref => {\n const hideModal = context.showModal == null ? void 0 : context.showModal(ref);\n setOpenModals(modals => [...modals, ref]);\n return () => {\n hideModal == null ? void 0 : hideModal();\n setOpenModals(modals => modals.filter(modal => modal !== ref));\n };\n }, [context.showModal]); // If this is a nested dialog, add it to the context.\n\n useSafeLayoutEffect(() => {\n return context.addDialog == null ? void 0 : context.addDialog(dialogRef);\n }, [context.addDialog, dialogRef]);\n useSafeLayoutEffect(() => {\n if (!modal) return;\n if (!state.open) return;\n return context.showModal == null ? void 0 : context.showModal(dialogRef);\n }, [modal, state.open, context.showModal, dialogRef]); // Close all nested dialogs when parent dialog closes.\n\n useSafeLayoutEffect(() => {\n if (context.open === false && state.open) {\n state.hide();\n }\n }, [context.open, state.open, state.hide]); // Provider\n\n const providerValue = useMemo(() => ({\n open: state.open,\n addDialog,\n showModal\n }), [state.open, addDialog, showModal]);\n const wrapElement = useCallback(element => /*#__PURE__*/jsx(NestedDialogsContext.Provider, {\n value: providerValue,\n children: element\n }), [providerValue]);\n return {\n nestedDialogs,\n openModals,\n wrapElement\n };\n} // Based on https://github.com/floating-ui/floating-ui/blob/1201e72e67a80e479122293d46d96c9bbc8f156d/packages/react-dom-interactions/src/FloatingOverlay.tsx\n\n\nfunction assignStyle(element, style) {\n if (!element) return () => {};\n const previousStyle = element.style.cssText;\n Object.assign(element.style, style);\n return () => {\n element.style.cssText = previousStyle;\n };\n}\n\nfunction setCSSProperty(element, property, value) {\n if (!element) return () => {};\n const previousValue = element.style.getPropertyValue(property);\n element.style.setProperty(property, value);\n return () => {\n if (previousValue) {\n element.style.setProperty(property, previousValue);\n } else {\n element.style.removeProperty(property);\n }\n };\n}\n\nfunction getPaddingProperty(documentElement) {\n // RTL scrollbar\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\n\nfunction usePreventBodyScroll(dialogRef, enabled) {\n const isChampionDialog = useChampionDialog(dialogRef, \"data-dialog-body-scroll\", enabled);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!isChampionDialog()) return;\n const doc = getDocument(dialog);\n const win = getWindow(dialog);\n const {\n documentElement,\n body\n } = doc;\n const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n\n const setScrollbarWidthProperty = () => setCSSProperty(documentElement, \"--scrollbar-width\", scrollbarWidth + \"px\");\n\n const paddingProperty = getPaddingProperty(documentElement);\n\n const setStyle = () => assignStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: scrollbarWidth + \"px\"\n }); // Only iOS doesn't respect `overflow: hidden` on document.body\n\n\n const setIOSStyle = () => {\n var _visualViewport$offse, _visualViewport$offse2;\n\n const {\n scrollX,\n scrollY,\n visualViewport\n } = win; // iOS 12 does not support `visuaViewport`.\n\n const offsetLeft = (_visualViewport$offse = visualViewport == null ? void 0 : visualViewport.offsetLeft) != null ? _visualViewport$offse : 0;\n const offsetTop = (_visualViewport$offse2 = visualViewport == null ? void 0 : visualViewport.offsetTop) != null ? _visualViewport$offse2 : 0;\n const restoreStyle = assignStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: \"0\",\n [paddingProperty]: scrollbarWidth + \"px\"\n });\n return () => {\n restoreStyle(); // istanbul ignore next: JSDOM doesn't implement window.scrollTo\n\n if (process.env.NODE_ENV !== \"test\") {\n win.scrollTo(scrollX, scrollY);\n }\n };\n };\n\n const isIOS = isApple() && !isMac();\n return chain(setScrollbarWidthProperty(), isIOS ? setIOSStyle() : setStyle());\n }, [dialogRef, isChampionDialog]);\n}\n\nconst isSafariBrowser = isSafari();\n\nfunction isBackdrop(dialog, element) {\n const id = dialog.id;\n if (!id) return;\n return element.getAttribute(\"data-backdrop\") === id;\n}\n\nfunction isInDialog(element) {\n return dialogRef => dialogRef.current && contains(dialogRef.current, element);\n}\n\nfunction isAlreadyFocusingAnotherElement(dialog, nestedDialogs) {\n const activeElement = getActiveElement();\n if (!activeElement) return false;\n if (contains(dialog, activeElement)) return false;\n if (isBackdrop(dialog, activeElement)) return false;\n if (nestedDialogs != null && nestedDialogs.some(isInDialog(activeElement))) return false;\n if (isFocusable(activeElement)) return true;\n return false;\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialog({ state });\n * Dialog \n * ```\n */\n\n\nconst useDialog = createHook(_ref => {\n let {\n state,\n focusable = true,\n modal = true,\n portal = !!modal,\n backdrop = !!modal,\n backdropProps,\n hideOnEscape = true,\n hideOnInteractOutside = true,\n preventBodyScroll = !!modal,\n autoFocusOnShow = true,\n autoFocusOnHide = true,\n initialFocusRef,\n finalFocusRef,\n ...props\n } = _ref;\n const ref = useRef(null);\n const openRef = useRef(state.open); // domReady can be also the portal node element so it's updated when the\n // portal node changes (like in between re-renders), triggering effects\n // again.\n\n const {\n portalRef,\n portalNode,\n domReady\n } = usePortalRef(portal, props.portalRef); // Sets preserveTabOrder to true only if the dialog is not a modal and is\n // open.\n\n const preserveTabOrder = props.preserveTabOrder && !modal && state.mounted;\n const openStable = state.open && !state.animating; // Usually, we only want to disable the accessibility tree outside if the\n // dialog is a modal. But the Portal component can't preserve the tab order\n // on Safari/VoiceOver. By allowing only the dialog/portal to be accessible,\n // we provide a similar tab order flow. We don't need to disable pointer\n // events because it's just for screen readers.\n\n const shouldDisableAccessibilityTree = modal || portal && preserveTabOrder && isSafari();\n const id = useId(props.id); // Sets disclosure ref. It needs to be a layout effect so we get the focused\n // element right before the dialog is mounted.\n\n useSafeLayoutEffect(() => {\n if (!openStable) return;\n const dialog = ref.current;\n const activeElement = getActiveElement(dialog, true);\n if (!activeElement) return;\n if (activeElement.tagName === \"BODY\") return; // The disclosure element can't be inside the dialog.\n\n if (dialog && contains(dialog, activeElement)) return;\n state.disclosureRef.current = activeElement;\n }, [openStable]);\n const nested = useNestedDialogs(ref, {\n state,\n modal\n });\n const {\n nestedDialogs,\n openModals,\n wrapElement\n } = nested;\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n usePreventBodyScroll(ref, preventBodyScroll && state.mounted); // When a focused child element is removed, focus will be placed on the\n // document's body. This will focus on the dialog instead.\n\n useFocusOnChildUnmount(ref, state);\n useHideOnInteractOutside(ref, nestedDialogs, {\n state,\n modal,\n hideOnInteractOutside,\n enabled: state.open\n }); // Safari does not focus on native buttons on mousedown. The\n // DialogDisclosure component normalizes this behavior using the\n // useFocusable hook, but the disclosure button may use a custom component,\n // and not DialogDisclosure. In this case, we need to make sure the\n // disclosure button gets focused here.\n\n if (isSafariBrowser) {\n useEffect(() => {\n if (!state.mounted) return;\n const disclosure = state.disclosureRef.current;\n if (!disclosure) return;\n if (!isButton(disclosure)) return;\n\n const onMouseDown = () => {\n let receivedFocus = false;\n\n const onFocus = () => {\n receivedFocus = true;\n };\n\n const options = {\n capture: true,\n once: true\n };\n disclosure.addEventListener(\"focusin\", onFocus, options);\n queueBeforeEvent(disclosure, \"mouseup\", () => {\n disclosure.removeEventListener(\"focusin\", onFocus, true);\n if (receivedFocus) return;\n focusIfNeeded(disclosure);\n });\n };\n\n disclosure.addEventListener(\"mousedown\", onMouseDown);\n return () => {\n disclosure.removeEventListener(\"mousedown\", onMouseDown);\n };\n }, [state.mounted, state.disclosureRef]);\n } // Renders a hidden dismiss button at the top of the modal dialog element.\n // So that screen reader users aren't trapped in the dialog when there's no\n // visible dismiss button.\n\n\n useEffect(() => {\n if (!state.mounted) return;\n if (!domReady) return;\n const dialog = ref.current;\n if (!dialog) return; // Usually, we only want to force the presence of a dismiss button if the\n // dialog is a modal. But, on Safari, since we're disabling the\n // accessibility tree outside, we need to ensure the user will be able to\n // close the dialog.\n\n if (shouldDisableAccessibilityTree) {\n // If there's already a DialogDismiss component, it does nothing.\n const existingDismiss = dialog.querySelector(\"[data-dialog-dismiss]\");\n if (existingDismiss) return;\n return prependHiddenDismiss(dialog, state.hide);\n }\n\n return;\n }, [state.mounted, domReady, shouldDisableAccessibilityTree, state.hide]);\n const shouldDisableOutside = useChampionDialog(ref, \"data-dialog-disable-outside\", openStable && !openModals.length && shouldDisableAccessibilityTree); // Disables/enables the element tree around the modal dialog element.\n\n useSafeLayoutEffect(() => {\n // When the dialog is animating, we immediately restore the element tree\n // outside. This means the element tree will be enabled when the focus is\n // moved back to the disclosure element.\n if (!shouldDisableOutside()) return; // If portal is enabled, we get the portalNode instead of the dialog\n // element. This will consider nested dialogs as they will be children of\n // the portal node, but not the dialog. This also accounts for the tiny\n // delay before the dialog element is appended to the portal node, and the\n // portal node is added to the DOM.\n\n const element = portal ? portalNode : ref.current;\n\n if (modal) {\n return chain(disableAccessibilityTreeOutside(element), // When the backdrop is not visible, we also need to disable pointer\n // events outside of the modal dialog.\n !backdrop ? disablePointerEventsOutside(element) : null);\n }\n\n return disableAccessibilityTreeOutside(element);\n }, [shouldDisableOutside, portal, portalNode, modal, backdrop]);\n const prevInitialFocusRef = useRef();\n const mayAutoFocusOnShow = !!autoFocusOnShow;\n const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow); // Auto focus on show.\n\n useEffect(() => {\n var _nestedDialogsRef$cur;\n\n if (!openStable) return;\n if (!mayAutoFocusOnShow) return; // Makes sure to wait for the portalNode to be created before moving\n // focus. This is useful for when the Dialog component is unmounted\n // when hidden.\n\n if (!domReady) return; // If there are open nested dialogs, let them handle the focus.\n\n const hasNestedOpenDialog = (_nestedDialogsRef$cur = nestedDialogsRef.current) == null ? void 0 : _nestedDialogsRef$cur.some(child => child.current && !child.current.hidden);\n if (hasNestedOpenDialog) return; // The dialog element may change for different reasons. For example, when\n // the `modal`, `portal` or `backdrop` props change, the HTML structure\n // will also change, which will affect the dialog element reference.\n // That's why we're listening to `state.contentElement` here instead of\n // getting the `ref.current` value. This ensures this effect will re-run\n // when the dialog element reference changes.\n\n const dialog = state.contentElement;\n if (!(dialog != null && dialog.isConnected)) return;\n const initialFocus = initialFocusRef == null ? void 0 : initialFocusRef.current;\n const element = initialFocus || // We have to fallback to the first focusable element otherwise portaled\n // dialogs with preserveTabOrder set to true will not receive focus\n // properly because the elements aren't tabbable until the dialog\n // receives focus.\n getFirstTabbableIn(dialog, true, portal && preserveTabOrder) || dialog;\n const prevInitialFocus = prevInitialFocusRef.current;\n prevInitialFocusRef.current = initialFocus; // If the initial focus is the same as the previous initial focus and\n // there's already an element with focus inside the dialog, we don't\n // change focus here.\n\n if (initialFocus === prevInitialFocus) {\n const activeElement = getActiveElement(dialog, true);\n if (activeElement && contains(dialog, activeElement)) return;\n }\n\n if (!autoFocusOnShowProp(element)) return;\n element.focus();\n }, [openStable, mayAutoFocusOnShow, domReady, state.contentElement, initialFocusRef, portal, preserveTabOrder, autoFocusOnShowProp]);\n const mayAutoFocusOnHide = !!autoFocusOnHide;\n const autoFocusOnHideProp = useBooleanEvent(autoFocusOnHide); // Auto focus on hide.\n\n useEffect(() => {\n const dialog = ref.current;\n const prevOpen = openRef.current;\n openRef.current = state.open; // We only want to auto focus on hide if the dialog was open before.\n\n if (!prevOpen) return;\n if (!mayAutoFocusOnHide) return;\n if (!dialog) return; // A function so we can use it on the effect setup and cleanup phases.\n\n const focusOnHide = () => {\n const dialogs = nestedDialogsRef.current; // Hide was triggered by a click/focus on a tabbable element outside\n // the dialog or on another dialog. We won't change focus then.\n\n if (isAlreadyFocusingAnotherElement(dialog, dialogs)) return;\n let element = (finalFocusRef == null ? void 0 : finalFocusRef.current) || state.disclosureRef.current;\n\n if (element) {\n if (element.id) {\n const doc = getDocument(element);\n const selector = \"[aria-activedescendant=\\\"\" + element.id + \"\\\"]\";\n const composite = doc.querySelector(selector); // If the element is an item in a composite widget that handles\n // focus with the `aria-activedescendant` attribute, we want to\n // focus on the composite element itself.\n\n if (composite) {\n element = composite;\n }\n } // If the element is not focusable by the time the dialog is hidden,\n // it's probably because it's an element inside another popover or\n // menu that also got hidden when this dialog was shown. We'll try to\n // focus on their disclosure element instead.\n\n\n if (!isFocusable(element)) {\n const parentDialog = closest(element, \"[data-dialog]\");\n\n if (parentDialog && parentDialog.id) {\n const doc = getDocument(parentDialog);\n const selector = \"[aria-controls~=\\\"\" + parentDialog.id + \"\\\"]\";\n const control = doc.querySelector(selector);\n\n if (control) {\n element = control;\n }\n }\n }\n\n if (!autoFocusOnHideProp(element)) return;\n element.focus();\n }\n };\n\n if (!state.open) {\n // If this effect is running while state.open is false, this means\n // that the Dialog component doesn't get unmounted when it's not\n // open, so we can immediatelly move focus.\n return focusOnHide();\n } // Otherwise, we just return the focusOnHide function so it's going to\n // be executed when the Dialog component gets unmounted. This is useful\n // so we can support both mounting and unmounting Dialog components.\n\n\n return focusOnHide;\n }, [mayAutoFocusOnHide, state.open, finalFocusRef, state.disclosureRef, autoFocusOnHideProp]);\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // Hide on Escape.\n\n useEffect(() => {\n if (!domReady) return;\n if (!state.mounted) return;\n\n const onKeyDown = event => {\n const dialog = ref.current;\n if (!dialog) return;\n const target = event.target;\n const disclosure = state.disclosureRef.current;\n if (event.key !== \"Escape\") return;\n if (event.defaultPrevented) return;\n if (!target) return; // This considers valid targets only the disclosure element or\n // descendants of the dialog element that are not descendants of nested\n // dialogs.\n\n const isValidTarget = () => {\n if (contains(dialog, target)) {\n const dialogs = nestedDialogsRef.current; // Since this is a native DOM event, it won't be triggered by\n // keystrokes on nested dialogs inside portals. But we still need to\n // check if the target is inside a nested non-portal dialog.\n\n const inNestedDialog = dialogs.some(isInDialog(target));\n if (inNestedDialog) return false;\n return true;\n }\n\n if (disclosure && contains(disclosure, target)) return true;\n return false;\n };\n\n if (isValidTarget() && hideOnEscapeProp(event)) {\n state.hide();\n }\n }; // We're attatching the listener to the document instead of the dialog\n // element so we can also listen to keystrokes on the disclosure element.\n // We can't do this on a onKeyDown prop on the disclosure element because\n // we don't have access to the hideOnEscape prop there.\n\n\n return addGlobalEventListener(\"keydown\", onKeyDown);\n }, [domReady, state.mounted, state.disclosureRef, hideOnEscapeProp, state.hide]); // Wraps the element with the nested dialog context.\n\n props = useWrapElement(props, wrapElement, [wrapElement]); // Resets the heading levels inside the modal dialog so they start with h1.\n\n props = useWrapElement(props, element => /*#__PURE__*/jsx(HeadingLevel, {\n level: modal ? 1 : undefined,\n children: element\n }), [modal]); // Focus traps.\n\n props = useFocusTrapRegion({ ...props,\n enabled: state.open && modal && !openModals.length\n });\n const hiddenProp = props.hidden; // Wraps the dialog with a backdrop element if the backdrop prop is truthy.\n\n props = useWrapElement(props, element => {\n if (backdrop) {\n return /*#__PURE__*/jsx(DialogBackdrop, {\n state: state,\n backdrop: backdrop,\n backdropProps: backdropProps,\n hideOnInteractOutside: hideOnInteractOutside,\n hideOnEscape: hideOnEscape,\n hidden: hiddenProp,\n children: element\n });\n }\n\n return element;\n }, [state, backdrop, backdropProps, hideOnInteractOutside, hideOnEscape, hiddenProp]);\n const [headingId, setHeadingId] = useState();\n const [descriptionId, setDescriptionId] = useState();\n props = useWrapElement(props, element => /*#__PURE__*/jsx(DialogContext.Provider, {\n value: state,\n children: /*#__PURE__*/jsx(DialogHeadingContext.Provider, {\n value: setHeadingId,\n children: /*#__PURE__*/jsx(DialogDescriptionContext.Provider, {\n value: setDescriptionId,\n children: element\n })\n })\n }), [state]);\n props = {\n id,\n \"data-dialog\": \"\",\n role: \"dialog\",\n tabIndex: focusable ? -1 : undefined,\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n ...props,\n ref: useForkRef(ref, props.ref)\n };\n props = useDisclosureContent({\n state,\n ...props\n });\n props = useFocusable({ ...props,\n focusable\n });\n props = usePortal({\n portal,\n ...props,\n portalRef,\n preserveTabOrder\n });\n return props;\n});\n/**\n * A component that renders a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Open dialog \n * Dialog \n * ```\n */\n\nconst Dialog = createComponent(props => {\n const htmlProps = useDialog(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Dialog.displayName = \"Dialog\";\n}\n\nexport { Dialog, useDialog };","import { useRef, useState } from 'react';\nimport { useSafeLayoutEffect, useEvent, useBooleanEvent, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useButton } from '../button/button.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosure({ state });\n * Disclosure \n * Content \n * ```\n */\n\nconst useDisclosure = createHook(_ref => {\n var _state$contentElement;\n\n let {\n state,\n toggleOnClick = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const [expanded, setExpanded] = useState(false); // Assigns the disclosureRef whenever it's undefined or disconnected from\n // the DOM. If this disclosure element is the disclosureRef, this element\n // will get the `aria-expanded` attribute set to `true` when the disclosure\n // content is open.\n\n useSafeLayoutEffect(() => {\n const currentDisclosure = state.disclosureRef.current;\n\n if (!currentDisclosure || !currentDisclosure.isConnected) {\n state.disclosureRef.current = ref.current;\n }\n\n const isCurrentDisclosure = state.disclosureRef.current === ref.current;\n setExpanded(state.open && isCurrentDisclosure);\n }, [state.disclosureRef, state.open]);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n });\n const onClickProp = props.onClick;\n const toggleOnClickProp = useBooleanEvent(toggleOnClick);\n const isDuplicate = (\"data-disclosure\" in props);\n const onClick = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (!toggleOnClickProp(event)) return;\n state.toggle();\n });\n props = {\n \"data-disclosure\": \"\",\n \"aria-expanded\": expanded,\n \"aria-controls\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n ...props,\n ref: useForkRef(ref, props.ref),\n onMouseDown,\n onClick\n };\n props = useButton(props);\n return props;\n});\n/**\n * A component that renders an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure \n * Content \n * ```\n */\n\nconst Disclosure = createComponent(props => {\n const htmlProps = useDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Disclosure.displayName = \"Disclosure\";\n}\n\nexport { Disclosure, useDisclosure };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosure } from '../disclosure/disclosure.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialogDisclosure({ state });\n * Disclosure \n * Content \n * ```\n */\n\nconst useDialogDisclosure = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n props = useDisclosure({\n state,\n ...props\n });\n return props;\n});\n/**\n * A component that renders a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Disclosure \n * Content \n * ```\n */\n\nconst DialogDisclosure = createComponent(props => {\n const htmlProps = useDialogDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogDisclosure.displayName = \"DialogDisclosure\";\n}\n\nexport { DialogDisclosure, useDialogDisclosure };","import React from 'react'\r\nimport { useStaticQuery, graphql, Link, withPrefix } from 'gatsby'\r\nimport styled from '@xstyled/styled-components'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\n\r\nconst SideNavQuery = graphql`\r\n query SideNavQuery {\r\n allMdx(filter: { fields: { pageType: { eq: \"doc\" }, title: { ne: \"\" } } }) {\r\n edges {\r\n node {\r\n id\r\n fields {\r\n title\r\n pageType\r\n section\r\n order\r\n slug\r\n }\r\n }\r\n }\r\n }\r\n\r\n site {\r\n siteMetadata {\r\n sections\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst createOrFindGroup = (name, groups) => {\r\n const existingGroup = groups.find((group) => group.name === name)\r\n if (existingGroup) return existingGroup\r\n\r\n const group = { name, nodes: [] }\r\n groups.push(group)\r\n return group\r\n}\r\n\r\nconst DEFAULT_ORDER_VALUE = -9999\r\n\r\nconst sortNodes = (a, b) => {\r\n const diff =\r\n a.fields.order !== DEFAULT_ORDER_VALUE &&\r\n b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? a.fields.order - b.fields.order\r\n : a.fields.order !== DEFAULT_ORDER_VALUE\r\n ? -1\r\n : b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? 1\r\n : a.fields.title.localeCompare(b.fields.title)\r\n return diff === 0 ? 0 : diff > 0 ? 1 : -1\r\n}\r\n\r\nconst groupNodes = (nodes) =>\r\n nodes.reduce((groups, node) => {\r\n if (!node.fields.title) return groups\r\n const group = createOrFindGroup(node.fields.section || '', groups)\r\n group.nodes.push(node)\r\n group.nodes.sort(sortNodes)\r\n return groups\r\n }, [])\r\n\r\nconst Nav = styled.nav`\r\n padding: 4 3 5;\r\n`\r\n\r\nconst NavGroup = styled.div`\r\n margin-bottom: 4;\r\n`\r\n\r\nconst NavGroupTitle = styled.h4`\r\n font-size: 14;\r\n font-weight: 500;\r\n color: on-background-light;\r\n text-transform: uppercase;\r\n margin: 0 0 3 0;\r\n`\r\n\r\nconst NavGroupMenu = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n border-left: 1;\r\n border-left-color: layout-border;\r\n`\r\n\r\nconst NavGroupMenuItem = styled.li`\r\n list-style-type: none;\r\n margin: 2 0 0 -2px;\r\n padding: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n\r\n a {\r\n color: on-background-light;\r\n display: block;\r\n transition: fast;\r\n transition-property: color, border-color;\r\n padding: 2px 0 2px 2;\r\n border-left: 3;\r\n border-color: transparent;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &:hover {\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n\r\n &[aria-current='page'] {\r\n font-weight: 600;\r\n border-color: primary;\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nconst sortGroupsWithConfig = (section) => (a, b) => {\r\n const indexA = section.indexOf(a.name)\r\n const indexB = section.indexOf(b.name)\r\n const diff = indexA - indexB\r\n return diff === 0 ? 0 : diff < 0 ? -1 : 1\r\n}\r\n\r\nexport function useSideNavState() {\r\n const data = useStaticQuery(SideNavQuery)\r\n return React.useMemo(() => {\r\n const navGroups = groupNodes(data.allMdx.edges.map((edge) => edge.node))\r\n navGroups.sort(sortGroupsWithConfig(data.site.siteMetadata.sections))\r\n return { navGroups }\r\n }, [data])\r\n}\r\n\r\nexport function useSideNavPrevNext({ navGroups }) {\r\n const { pathname } = useLocation()\r\n const nodes = navGroups.flatMap((group) => group.nodes)\r\n const nodeIndex = nodes.findIndex(\r\n (node) => withPrefix(node.fields.slug) === pathname,\r\n )\r\n return {\r\n prev: nodeIndex > -1 ? nodes[nodeIndex - 1] : null,\r\n next: nodeIndex > -1 ? nodes[nodeIndex + 1] : null,\r\n }\r\n}\r\n\r\nexport function SideNav({ navGroups }) {\r\n return (\r\n \r\n {navGroups.map((navGroup, index) => (\r\n \r\n {navGroup.name} \r\n \r\n {navGroup.nodes.map((page) => (\r\n \r\n {page.fields.title}\r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\nimport styled, { th } from '@xstyled/styled-components'\r\n\r\nconst TOP_OFFSET = 100\r\n\r\nfunction getHeaderAnchors() {\r\n return Array.prototype.filter.call(\r\n document.getElementsByClassName('anchor'),\r\n (testElement) =>\r\n testElement.parentNode.nodeName === 'H2' ||\r\n testElement.parentNode.nodeName === 'H3',\r\n )\r\n}\r\n\r\nfunction getHeaderDataFromAnchor(el) {\r\n return {\r\n url: el.getAttribute('href'),\r\n text: el.parentElement?.innerText,\r\n depth: Number(el.parentElement?.nodeName.replace('H', '')),\r\n }\r\n}\r\n\r\nfunction getAnchorHeaderIdentifier(el) {\r\n return el?.parentElement?.id\r\n}\r\n\r\nexport function useTocHighlight(ref) {\r\n const { pathname } = useLocation()\r\n const [lastActiveLink, setLastActiveLink] = React.useState(undefined)\r\n const [headings, setHeadings] = React.useState([])\r\n\r\n React.useEffect(() => {\r\n setHeadings(getHeaderAnchors().map(getHeaderDataFromAnchor))\r\n }, [pathname])\r\n\r\n React.useEffect(() => {\r\n let headersAnchors = []\r\n let links = []\r\n\r\n function setActiveLink() {\r\n function getActiveHeaderAnchor() {\r\n let index = 0\r\n let activeHeaderAnchor = null\r\n\r\n headersAnchors = getHeaderAnchors()\r\n while (index < headersAnchors.length && !activeHeaderAnchor) {\r\n const headerAnchor = headersAnchors[index]\r\n const { top } = headerAnchor.getBoundingClientRect()\r\n\r\n if (top >= 0 && top <= TOP_OFFSET) {\r\n activeHeaderAnchor = headerAnchor\r\n }\r\n\r\n index += 1\r\n }\r\n\r\n return activeHeaderAnchor\r\n }\r\n\r\n const activeHeaderAnchor = getActiveHeaderAnchor()\r\n\r\n if (activeHeaderAnchor) {\r\n let index = 0\r\n let itemHighlighted = false\r\n\r\n links = ref.current ? ref.current.querySelectorAll('a') : []\r\n\r\n while (index < links.length && !itemHighlighted) {\r\n const link = links[index]\r\n const { href } = link\r\n const anchorValue = decodeURIComponent(\r\n href.substring(href.indexOf('#') + 1),\r\n )\r\n\r\n if (getAnchorHeaderIdentifier(activeHeaderAnchor) === anchorValue) {\r\n if (lastActiveLink) {\r\n lastActiveLink.removeAttribute('aria-current')\r\n }\r\n\r\n link.setAttribute('aria-current', 'true')\r\n\r\n setLastActiveLink(link)\r\n itemHighlighted = true\r\n }\r\n\r\n index += 1\r\n }\r\n }\r\n }\r\n\r\n document.addEventListener('scroll', setActiveLink)\r\n document.addEventListener('resize', setActiveLink)\r\n\r\n setActiveLink()\r\n\r\n return () => {\r\n document.removeEventListener('scroll', setActiveLink)\r\n document.removeEventListener('resize', setActiveLink)\r\n }\r\n })\r\n\r\n return headings\r\n}\r\n\r\nconst TocContainer = styled.div`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 5 3 4; // 5 0 4;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n font-size: 15;\r\n\r\n h4 {\r\n margin: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n text-transform: uppercase;\r\n color: on-background-light;\r\n }\r\n\r\n ul {\r\n list-style-type: none;\r\n padding: 0;\r\n\r\n li {\r\n margin: 2 0;\r\n\r\n &[data-depth='3'] {\r\n padding-left: 2;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n display: inline-block;\r\n transition: fast;\r\n color: on-background-light;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &[aria-current] {\r\n font-weight: 500;\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n\r\n &:hover {\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nexport function TableOfContents() {\r\n const ref = React.useRef()\r\n const headings = useTocHighlight(ref)\r\n if (!headings.length) return null\r\n return (\r\n \r\n On this page \r\n \r\n {headings.map((heading, i) =>\r\n heading.url ? (\r\n \r\n {heading.text} \r\n \r\n ) : null,\r\n )}\r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th, useUp } from '@xstyled/styled-components'\r\nimport { useDialogState, Dialog, DialogDisclosure } from 'ariakit/dialog'\r\nimport { Portal } from 'ariakit/portal'\r\nimport { VscChevronUp } from 'react-icons/vsc'\r\nimport { RiPencilLine } from 'react-icons/ri'\r\nimport { ScreenContainer } from '../ScreenContainer'\r\nimport { SideNav, useSideNavState, useSideNavPrevNext } from '../SideNav'\r\nimport { SiblingNav, SiblingNavLink } from '../SiblingNav'\r\nimport { Article } from '../Article'\r\nimport { TableOfContents } from '../TableOfContents'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst SidebarDialog = styled.div`\r\n background-color: background-light-a50;\r\n backdrop-filter: blur(3px);\r\n position: fixed;\r\n top: 50;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 20;\r\n overflow: auto;\r\n transition: base;\r\n opacity: 0;\r\n transition: opacity 250ms ease-in-out, transform 250ms ease-in-out;\r\n transform: translate3d(0, 10vh, 0);\r\n\r\n &[data-enter] {\r\n opacity: 1;\r\n transform: translate3d(0, 0, 0);\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n`\r\n\r\nconst Container = styled.div`\r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: 288px minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: 288px minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst SidebarSticky = styled.aside`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 4 0;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n width: 288px;\r\n\r\n ${down(\r\n 'md',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst MenuButton = styled.button`\r\n appearance: none;\r\n border: 0;\r\n border-radius: 50%;\r\n width: 60;\r\n height: 60;\r\n position: fixed;\r\n right: ${th.size(8)};\r\n bottom: ${th.size(8)};\r\n z-index: 25;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n color: background;\r\n background-color: on-background;\r\n transition: base;\r\n transition-property: color;\r\n\r\n &:focus {\r\n color: background;\r\n }\r\n\r\n > svg {\r\n width: 24;\r\n height: 24;\r\n transition: transform 200ms ease-in-out;\r\n\r\n &:first-child {\r\n transform: translateX(-1px);\r\n }\r\n\r\n &:last-child {\r\n transform: translate(-1px) rotate(180deg);\r\n }\r\n }\r\n\r\n &[aria-expanded='true'] {\r\n > svg:first-child {\r\n transform: translate(-1px, 16px);\r\n }\r\n\r\n > svg:last-child {\r\n transform: translate(-1px, -16px) rotate(180deg);\r\n }\r\n }\r\n`\r\n\r\nfunction MobileSidebar({ children }) {\r\n const dialog = useDialogState({ animated: true })\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nfunction PrevNextLinks(props) {\r\n const { prev, next } = useSideNavPrevNext(props)\r\n if (!prev && !next) return null\r\n return (\r\n \r\n {prev && (\r\n \r\n {prev.fields.title}\r\n \r\n )}\r\n {next && (\r\n \r\n {next.fields.title}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport function DocLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = true;\r\n const upMd = useUp('md')\r\n const sideNav = useSideNavState()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!upMd && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\nimport PostHero from \"../blog/PostHero\";\r\nimport PostTitle from \"../blog/PostTitle\";\r\nimport PostDate from \"../blog/PostDate\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nexport function PostLayout({ children, tableOfContents, ...props }) {\r\n console.log(`PostLayout.js`)\r\n const post = children?.props?.pageContext?.frontmatter || {}\r\n console.log(`post ${JSON.stringify(post)}`)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {post.title}
\r\n {post.date}
\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n)}\r\n`\r\n\r\nexport function PageLayout({ children, tableOfContents, editLink, ...props }) {\r\n console.log(`PageLayout.js`)\r\n return (\r\n \r\n \r\n \r\n {children} \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled from '@xstyled/styled-components'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst HomeMain = styled.main`\r\n background-color: background;\r\n flex: 1;\r\n \r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n`\r\n\r\nexport function HomeLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = false;\r\n props.isHome = children.key === '/';\r\n return \r\n {children} \r\n \r\n}\r\n","import React from 'react'\r\nimport { DocLayout } from './layouts/DocLayout'\r\nimport { PostLayout } from './layouts/PostLayout'\r\nimport {PageLayout} from \"./layouts/PageLayout\";\r\nimport {HomeLayout} from \"./layouts/HomeLayout\";\r\n\r\nexport function PageWrapper({\r\n children,\r\n props: {\r\n data: { mdx },\r\n },\r\n}) {\r\n console.log(`PageWrapper.js ${mdx?.fields?.pageType}`)\r\n if (!mdx?.fields?.pageType) return children\r\n switch (mdx.fields.pageType) {\r\n case 'doc':\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n case 'page':\r\n console.log(\"PageWrapper\", children);\r\n if(children.key === '/') {\r\n return {children} \r\n } else {\r\n return {children} \r\n }\r\n case 'post':\r\n return {children} \r\n default:\r\n return children\r\n }\r\n}\r\n","import React from 'react'\r\nimport { RootWrapper } from './src/components/RootWrapper'\r\nimport { PageWrapper } from './src/components/PageWrapper'\r\n\r\nexport const wrapRootElement = ({ element }) => {\r\n return {element} \r\n}\r\n\r\nexport const wrapPageElement = ({ element, props }) => {\r\n return {element} \r\n}\r\n","import styled, { css, up, down } from '@xstyled/styled-components'\r\n\r\nexport const Article = styled.article`\r\n .anchor {\r\n margin-left: calc(-1em - 4px);\r\n > svg {\r\n fill: on-background;\r\n width: 1em;\r\n height: 1em;\r\n display: inline;\r\n vertical-align: -15%;\r\n }\r\n }\r\n\r\n code {\r\n background-color: background-light;\r\n color: on-background-primary;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n mark {\r\n background-color: background-mark;\r\n }\r\n\r\n > p {\r\n margin: 3 0;\r\n font-size: 16;\r\n line-height: 1.6;\r\n // max-width: 52em;\r\n }\r\n\r\n /* Intro */\r\n > h1 + p {\r\n font-size: 18;\r\n font-weight: 300;\r\n color: on-background-light;\r\n margin: 2 0 !important;\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 22;\r\n line-height: 1.2;\r\n `,\r\n )};\r\n\r\n a,\r\n strong {\r\n font-weight: 400;\r\n }\r\n }\r\n\r\n > hr {\r\n margin: 0;\r\n height: 0;\r\n border: 0;\r\n border-top: 1;\r\n border-color: layout-border;\r\n margin: 4 0;\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n > h1 {\r\n font-size: 32;\r\n line-height: 1.1;\r\n font-weight: 600;\r\n margin: 40 0 2;\r\n }\r\n\r\n > h2 {\r\n font-size: 24;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0;\r\n padding-top: 3;\r\n border-top: 1;\r\n border-color: layout-border;\r\n }\r\n\r\n > h1 + h2,\r\n > h2:first-child {\r\n border-top: 0;\r\n margin-top: 0;\r\n padding-top: 0;\r\n }\r\n\r\n > h3 {\r\n font-size: 18;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0 3;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n overflow-wrap: break-word;\r\n word-break: break-word;\r\n `,\r\n )}\r\n }\r\n\r\n > h4 {\r\n font-weight: 500;\r\n font-size: 16;\r\n line-height: 1.2;\r\n margin: 3 0;\r\n }\r\n\r\n > h4 + p {\r\n margin-top: 3;\r\n }\r\n\r\n > ul + p {\r\n margin-top: 2;\r\n }\r\n\r\n .editor {\r\n background-color: editor-background;\r\n color: editor-text;\r\n padding: 3 4;\r\n margin: 4 -3;\r\n overflow: auto;\r\n font-size: 14;\r\n line-height: 1.45;\r\n border-radius: base;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n margin-left: -4;\r\n margin-right: -4;\r\n border-radius: 0;\r\n `,\r\n )}\r\n }\r\n\r\n > code {\r\n background-color: editor-background;\r\n border-radius: base;\r\n color: inherit;\r\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono,\r\n Courier New, monospace;\r\n font-size: 85%;\r\n padding: 1 2;\r\n }\r\n\r\n img {\r\n max-width: 100%;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-top: 4;\r\n font-size: 16;\r\n padding-left: 4;\r\n\r\n p,\r\n p:first-of-type {\r\n font-size: 16;\r\n margin-top: 0;\r\n line-height: 1.2;\r\n }\r\n\r\n li {\r\n margin-top: 2;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-left: 4;\r\n margin-top: 2;\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n }\r\n\r\n > blockquote {\r\n font-size: 16;\r\n background-color: blockquote-background;\r\n border-left: 8;\r\n border-color: blockquote-border;\r\n padding: 3;\r\n margin: 3 -2;\r\n border-radius: blockquote;\r\n\r\n code {\r\n background-color: rgba(255, 255, 255, 0.1);\r\n background-blend-mode: color;\r\n color: on-background;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n p {\r\n margin-top: 3;\r\n\r\n &:first-of-type {\r\n margin-top: 0;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n color: blockquote-link;\r\n text-decoration: underline;\r\n\r\n &:hover {\r\n color: on-background;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n text-decoration: underline;\r\n color: on-background-primary;\r\n\r\n &:hover {\r\n color: on-background-primary-dark;\r\n }\r\n }\r\n`\r\n","/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\n\n/**\n * prism-react-renderer:\n * This file has been modified to remove:\n * - globals and window dependency\n * - worker support\n * - highlightAll and other element dependent methods\n * - _.hooks helpers\n * - UMD/node-specific hacks\n * It has also been run through prettier\n */\nvar Prism = function () {\n // Private helper vars\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0; // The grammar object for plaintext\n\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&').replace(/} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone =\n /** @type {Record} */\n {};\n visited[id] = clone;\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n\n return (\n /** @type {any} */\n clone\n );\n\n case 'Array':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone = [];\n visited[id] = clone;\n\n /** @type {Array} */\n\n /** @type {any} */\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n\n default:\n return o;\n }\n },\n\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function (element) {\n while (element) {\n var m = lang.exec(element.className);\n\n if (m) {\n return m[1].toLowerCase();\n }\n\n element = element.parentElement;\n }\n\n return 'none';\n },\n\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function (element, language) {\n // remove all `language-xxxx` classes\n // (this might leave behind a leading space)\n element.className = element.className.replace(RegExp(lang, 'gi'), ''); // add the new `language-xxxx` class\n // (using `classList` will automatically clean up spaces for us)\n\n element.classList.add('language-' + language);\n },\n\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function (element, className, defaultActivation) {\n var no = 'no-' + className;\n\n while (element) {\n var classList = element.classList;\n\n if (classList.contains(className)) {\n return true;\n }\n\n if (classList.contains(no)) {\n return false;\n }\n\n element = element.parentElement;\n }\n\n return !!defaultActivation;\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function (id, redef) {\n var lang = _.util.clone(_.languages[id]);\n\n for (var key in redef) {\n lang[key] = redef[key];\n }\n\n return lang;\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.6\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n}(),\n Xe = function (e) {\n var t = r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n},\n Ze = function () {\n return s(Ge);\n},\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n};\n\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","module.exports = new Set([// Non-binary properties:\n'General_Category', 'Script', 'Script_Extensions', // Binary properties:\n'Alphabetic', 'Any', 'ASCII', 'ASCII_Hex_Digit', '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', 'ID_Continue', 'ID_Start', 'Ideographic', 'IDS_Binary_Operator', 'IDS_Trinary_Operator', 'Join_Control', 'Logical_Order_Exception', 'Lowercase', 'Math', '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']);","'use strict';\n\nconst canonicalProperties = require('unicode-canonical-property-names-ecmascript');\n\nconst propertyAliases = require('unicode-property-aliases-ecmascript');\n\nconst matchProperty = function (property) {\n if (canonicalProperties.has(property)) {\n return property;\n }\n\n if (propertyAliases.has(property)) {\n return propertyAliases.get(property);\n }\n\n throw new Error(\"Unknown property: \".concat(property));\n};\n\nmodule.exports = matchProperty;","module.exports = new Map([['General_Category', new Map([['C', 'Other'], ['Cc', 'Control'], ['cntrl', 'Control'], ['Cf', 'Format'], ['Cn', 'Unassigned'], ['Co', 'Private_Use'], ['Cs', 'Surrogate'], ['L', 'Letter'], ['LC', 'Cased_Letter'], ['Ll', 'Lowercase_Letter'], ['Lm', 'Modifier_Letter'], ['Lo', 'Other_Letter'], ['Lt', 'Titlecase_Letter'], ['Lu', 'Uppercase_Letter'], ['M', 'Mark'], ['Combining_Mark', 'Mark'], ['Mc', 'Spacing_Mark'], ['Me', 'Enclosing_Mark'], ['Mn', 'Nonspacing_Mark'], ['N', 'Number'], ['Nd', 'Decimal_Number'], ['digit', 'Decimal_Number'], ['Nl', 'Letter_Number'], ['No', 'Other_Number'], ['P', 'Punctuation'], ['punct', 'Punctuation'], ['Pc', 'Connector_Punctuation'], ['Pd', 'Dash_Punctuation'], ['Pe', 'Close_Punctuation'], ['Pf', 'Final_Punctuation'], ['Pi', 'Initial_Punctuation'], ['Po', 'Other_Punctuation'], ['Ps', 'Open_Punctuation'], ['S', 'Symbol'], ['Sc', 'Currency_Symbol'], ['Sk', 'Modifier_Symbol'], ['Sm', 'Math_Symbol'], ['So', 'Other_Symbol'], ['Z', 'Separator'], ['Zl', 'Line_Separator'], ['Zp', 'Paragraph_Separator'], ['Zs', 'Space_Separator'], ['Other', 'Other'], ['Control', 'Control'], ['Format', 'Format'], ['Unassigned', 'Unassigned'], ['Private_Use', 'Private_Use'], ['Surrogate', 'Surrogate'], ['Letter', 'Letter'], ['Cased_Letter', 'Cased_Letter'], ['Lowercase_Letter', 'Lowercase_Letter'], ['Modifier_Letter', 'Modifier_Letter'], ['Other_Letter', 'Other_Letter'], ['Titlecase_Letter', 'Titlecase_Letter'], ['Uppercase_Letter', 'Uppercase_Letter'], ['Mark', 'Mark'], ['Spacing_Mark', 'Spacing_Mark'], ['Enclosing_Mark', 'Enclosing_Mark'], ['Nonspacing_Mark', 'Nonspacing_Mark'], ['Number', 'Number'], ['Decimal_Number', 'Decimal_Number'], ['Letter_Number', 'Letter_Number'], ['Other_Number', 'Other_Number'], ['Punctuation', 'Punctuation'], ['Connector_Punctuation', 'Connector_Punctuation'], ['Dash_Punctuation', 'Dash_Punctuation'], ['Close_Punctuation', 'Close_Punctuation'], ['Final_Punctuation', 'Final_Punctuation'], ['Initial_Punctuation', 'Initial_Punctuation'], ['Other_Punctuation', 'Other_Punctuation'], ['Open_Punctuation', 'Open_Punctuation'], ['Symbol', 'Symbol'], ['Currency_Symbol', 'Currency_Symbol'], ['Modifier_Symbol', 'Modifier_Symbol'], ['Math_Symbol', 'Math_Symbol'], ['Other_Symbol', 'Other_Symbol'], ['Separator', 'Separator'], ['Line_Separator', 'Line_Separator'], ['Paragraph_Separator', 'Paragraph_Separator'], ['Space_Separator', 'Space_Separator']])], ['Script', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])], ['Script_Extensions', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])]]);","'use strict';\n\nconst propertyToValueAliases = require('./data/mappings.js');\n\nconst matchPropertyValue = function (property, value) {\n const aliasToValue = propertyToValueAliases.get(property);\n\n if (!aliasToValue) {\n throw new Error(\"Unknown property `\".concat(property, \"`.\"));\n }\n\n const canonicalValue = aliasToValue.get(value);\n\n if (canonicalValue) {\n return canonicalValue;\n }\n\n throw new Error(\"Unknown value `\".concat(value, \"` for property `\").concat(property, \"`.\"));\n};\n\nmodule.exports = matchPropertyValue;","// Generated using `npm run build`. Do not edit!\nmodule.exports = new Map([['scx', 'Script_Extensions'], ['sc', 'Script'], ['gc', 'General_Category'], ['AHex', 'ASCII_Hex_Digit'], ['Alpha', 'Alphabetic'], ['Bidi_C', 'Bidi_Control'], ['Bidi_M', 'Bidi_Mirrored'], ['Cased', 'Cased'], ['CI', 'Case_Ignorable'], ['CWCF', 'Changes_When_Casefolded'], ['CWCM', 'Changes_When_Casemapped'], ['CWKCF', 'Changes_When_NFKC_Casefolded'], ['CWL', 'Changes_When_Lowercased'], ['CWT', 'Changes_When_Titlecased'], ['CWU', 'Changes_When_Uppercased'], ['Dash', 'Dash'], ['Dep', 'Deprecated'], ['DI', 'Default_Ignorable_Code_Point'], ['Dia', 'Diacritic'], ['EBase', 'Emoji_Modifier_Base'], ['EComp', 'Emoji_Component'], ['EMod', 'Emoji_Modifier'], ['Emoji', 'Emoji'], ['EPres', 'Emoji_Presentation'], ['Ext', 'Extender'], ['ExtPict', 'Extended_Pictographic'], ['Gr_Base', 'Grapheme_Base'], ['Gr_Ext', 'Grapheme_Extend'], ['Hex', 'Hex_Digit'], ['IDC', 'ID_Continue'], ['Ideo', 'Ideographic'], ['IDS', 'ID_Start'], ['IDSB', 'IDS_Binary_Operator'], ['IDST', 'IDS_Trinary_Operator'], ['Join_C', 'Join_Control'], ['LOE', 'Logical_Order_Exception'], ['Lower', 'Lowercase'], ['Math', 'Math'], ['NChar', 'Noncharacter_Code_Point'], ['Pat_Syn', 'Pattern_Syntax'], ['Pat_WS', 'Pattern_White_Space'], ['QMark', 'Quotation_Mark'], ['Radical', 'Radical'], ['RI', 'Regional_Indicator'], ['SD', 'Soft_Dotted'], ['STerm', 'Sentence_Terminal'], ['Term', 'Terminal_Punctuation'], ['UIdeo', 'Unified_Ideograph'], ['Upper', 'Uppercase'], ['VS', 'Variation_Selector'], ['WSpace', 'White_Space'], ['space', 'White_Space'], ['XIDC', 'XID_Continue'], ['XIDS', 'XID_Start']]);","var map = {\n\t\"./Binary_Property/ASCII.js\": 80055,\n\t\"./Binary_Property/ASCII_Hex_Digit.js\": 81731,\n\t\"./Binary_Property/Alphabetic.js\": 75244,\n\t\"./Binary_Property/Any.js\": 25929,\n\t\"./Binary_Property/Assigned.js\": 72573,\n\t\"./Binary_Property/Bidi_Control.js\": 83029,\n\t\"./Binary_Property/Bidi_Mirrored.js\": 50755,\n\t\"./Binary_Property/Case_Ignorable.js\": 86317,\n\t\"./Binary_Property/Cased.js\": 78087,\n\t\"./Binary_Property/Changes_When_Casefolded.js\": 61587,\n\t\"./Binary_Property/Changes_When_Casemapped.js\": 62518,\n\t\"./Binary_Property/Changes_When_Lowercased.js\": 50140,\n\t\"./Binary_Property/Changes_When_NFKC_Casefolded.js\": 97224,\n\t\"./Binary_Property/Changes_When_Titlecased.js\": 40835,\n\t\"./Binary_Property/Changes_When_Uppercased.js\": 95428,\n\t\"./Binary_Property/Dash.js\": 78233,\n\t\"./Binary_Property/Default_Ignorable_Code_Point.js\": 91357,\n\t\"./Binary_Property/Deprecated.js\": 18391,\n\t\"./Binary_Property/Diacritic.js\": 5198,\n\t\"./Binary_Property/Emoji.js\": 42117,\n\t\"./Binary_Property/Emoji_Component.js\": 97581,\n\t\"./Binary_Property/Emoji_Modifier.js\": 39030,\n\t\"./Binary_Property/Emoji_Modifier_Base.js\": 18618,\n\t\"./Binary_Property/Emoji_Presentation.js\": 29702,\n\t\"./Binary_Property/Extended_Pictographic.js\": 5667,\n\t\"./Binary_Property/Extender.js\": 9002,\n\t\"./Binary_Property/Grapheme_Base.js\": 96851,\n\t\"./Binary_Property/Grapheme_Extend.js\": 71054,\n\t\"./Binary_Property/Hex_Digit.js\": 80662,\n\t\"./Binary_Property/IDS_Binary_Operator.js\": 66910,\n\t\"./Binary_Property/IDS_Trinary_Operator.js\": 31548,\n\t\"./Binary_Property/ID_Continue.js\": 97301,\n\t\"./Binary_Property/ID_Start.js\": 47818,\n\t\"./Binary_Property/Ideographic.js\": 82217,\n\t\"./Binary_Property/Join_Control.js\": 15332,\n\t\"./Binary_Property/Logical_Order_Exception.js\": 55780,\n\t\"./Binary_Property/Lowercase.js\": 61091,\n\t\"./Binary_Property/Math.js\": 7146,\n\t\"./Binary_Property/Noncharacter_Code_Point.js\": 51752,\n\t\"./Binary_Property/Pattern_Syntax.js\": 76596,\n\t\"./Binary_Property/Pattern_White_Space.js\": 86436,\n\t\"./Binary_Property/Quotation_Mark.js\": 29467,\n\t\"./Binary_Property/Radical.js\": 68163,\n\t\"./Binary_Property/Regional_Indicator.js\": 16412,\n\t\"./Binary_Property/Sentence_Terminal.js\": 25496,\n\t\"./Binary_Property/Soft_Dotted.js\": 83045,\n\t\"./Binary_Property/Terminal_Punctuation.js\": 20991,\n\t\"./Binary_Property/Unified_Ideograph.js\": 15154,\n\t\"./Binary_Property/Uppercase.js\": 91909,\n\t\"./Binary_Property/Variation_Selector.js\": 64590,\n\t\"./Binary_Property/White_Space.js\": 42886,\n\t\"./Binary_Property/XID_Continue.js\": 83067,\n\t\"./Binary_Property/XID_Start.js\": 86524,\n\t\"./General_Category/Cased_Letter.js\": 94195,\n\t\"./General_Category/Close_Punctuation.js\": 42549,\n\t\"./General_Category/Connector_Punctuation.js\": 72437,\n\t\"./General_Category/Control.js\": 44467,\n\t\"./General_Category/Currency_Symbol.js\": 75431,\n\t\"./General_Category/Dash_Punctuation.js\": 86441,\n\t\"./General_Category/Decimal_Number.js\": 57965,\n\t\"./General_Category/Enclosing_Mark.js\": 89586,\n\t\"./General_Category/Final_Punctuation.js\": 32965,\n\t\"./General_Category/Format.js\": 32277,\n\t\"./General_Category/Initial_Punctuation.js\": 5900,\n\t\"./General_Category/Letter.js\": 63764,\n\t\"./General_Category/Letter_Number.js\": 43043,\n\t\"./General_Category/Line_Separator.js\": 19307,\n\t\"./General_Category/Lowercase_Letter.js\": 45025,\n\t\"./General_Category/Mark.js\": 76197,\n\t\"./General_Category/Math_Symbol.js\": 21803,\n\t\"./General_Category/Modifier_Letter.js\": 31022,\n\t\"./General_Category/Modifier_Symbol.js\": 46858,\n\t\"./General_Category/Nonspacing_Mark.js\": 85948,\n\t\"./General_Category/Number.js\": 78861,\n\t\"./General_Category/Open_Punctuation.js\": 38999,\n\t\"./General_Category/Other.js\": 30567,\n\t\"./General_Category/Other_Letter.js\": 52093,\n\t\"./General_Category/Other_Number.js\": 80180,\n\t\"./General_Category/Other_Punctuation.js\": 72919,\n\t\"./General_Category/Other_Symbol.js\": 57481,\n\t\"./General_Category/Paragraph_Separator.js\": 26400,\n\t\"./General_Category/Private_Use.js\": 55205,\n\t\"./General_Category/Punctuation.js\": 78350,\n\t\"./General_Category/Separator.js\": 66827,\n\t\"./General_Category/Space_Separator.js\": 29909,\n\t\"./General_Category/Spacing_Mark.js\": 67089,\n\t\"./General_Category/Surrogate.js\": 38703,\n\t\"./General_Category/Symbol.js\": 34345,\n\t\"./General_Category/Titlecase_Letter.js\": 87135,\n\t\"./General_Category/Unassigned.js\": 48068,\n\t\"./General_Category/Uppercase_Letter.js\": 54508,\n\t\"./Property_of_Strings/Basic_Emoji.js\": 7134,\n\t\"./Property_of_Strings/Emoji_Keycap_Sequence.js\": 1354,\n\t\"./Property_of_Strings/RGI_Emoji.js\": 64708,\n\t\"./Property_of_Strings/RGI_Emoji_Flag_Sequence.js\": 32530,\n\t\"./Property_of_Strings/RGI_Emoji_Modifier_Sequence.js\": 76685,\n\t\"./Property_of_Strings/RGI_Emoji_Tag_Sequence.js\": 80852,\n\t\"./Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js\": 70523,\n\t\"./Script/Adlam.js\": 67309,\n\t\"./Script/Ahom.js\": 21824,\n\t\"./Script/Anatolian_Hieroglyphs.js\": 44251,\n\t\"./Script/Arabic.js\": 93703,\n\t\"./Script/Armenian.js\": 52003,\n\t\"./Script/Avestan.js\": 91194,\n\t\"./Script/Balinese.js\": 97148,\n\t\"./Script/Bamum.js\": 92508,\n\t\"./Script/Bassa_Vah.js\": 87398,\n\t\"./Script/Batak.js\": 70403,\n\t\"./Script/Bengali.js\": 60285,\n\t\"./Script/Bhaiksuki.js\": 10143,\n\t\"./Script/Bopomofo.js\": 25500,\n\t\"./Script/Brahmi.js\": 69672,\n\t\"./Script/Braille.js\": 67008,\n\t\"./Script/Buginese.js\": 32055,\n\t\"./Script/Buhid.js\": 90141,\n\t\"./Script/Canadian_Aboriginal.js\": 40912,\n\t\"./Script/Carian.js\": 68653,\n\t\"./Script/Caucasian_Albanian.js\": 47231,\n\t\"./Script/Chakma.js\": 38234,\n\t\"./Script/Cham.js\": 29076,\n\t\"./Script/Cherokee.js\": 47242,\n\t\"./Script/Chorasmian.js\": 91466,\n\t\"./Script/Common.js\": 2325,\n\t\"./Script/Coptic.js\": 4957,\n\t\"./Script/Cuneiform.js\": 51215,\n\t\"./Script/Cypriot.js\": 94221,\n\t\"./Script/Cypro_Minoan.js\": 77004,\n\t\"./Script/Cyrillic.js\": 49326,\n\t\"./Script/Deseret.js\": 2436,\n\t\"./Script/Devanagari.js\": 76224,\n\t\"./Script/Dives_Akuru.js\": 28156,\n\t\"./Script/Dogra.js\": 19019,\n\t\"./Script/Duployan.js\": 11233,\n\t\"./Script/Egyptian_Hieroglyphs.js\": 82904,\n\t\"./Script/Elbasan.js\": 50651,\n\t\"./Script/Elymaic.js\": 63404,\n\t\"./Script/Ethiopic.js\": 42249,\n\t\"./Script/Georgian.js\": 77113,\n\t\"./Script/Glagolitic.js\": 84922,\n\t\"./Script/Gothic.js\": 8047,\n\t\"./Script/Grantha.js\": 31338,\n\t\"./Script/Greek.js\": 74214,\n\t\"./Script/Gujarati.js\": 51130,\n\t\"./Script/Gunjala_Gondi.js\": 60046,\n\t\"./Script/Gurmukhi.js\": 37307,\n\t\"./Script/Han.js\": 77439,\n\t\"./Script/Hangul.js\": 73296,\n\t\"./Script/Hanifi_Rohingya.js\": 67439,\n\t\"./Script/Hanunoo.js\": 71394,\n\t\"./Script/Hatran.js\": 68092,\n\t\"./Script/Hebrew.js\": 24189,\n\t\"./Script/Hiragana.js\": 84371,\n\t\"./Script/Imperial_Aramaic.js\": 10780,\n\t\"./Script/Inherited.js\": 71122,\n\t\"./Script/Inscriptional_Pahlavi.js\": 53431,\n\t\"./Script/Inscriptional_Parthian.js\": 580,\n\t\"./Script/Javanese.js\": 37174,\n\t\"./Script/Kaithi.js\": 77983,\n\t\"./Script/Kannada.js\": 29485,\n\t\"./Script/Katakana.js\": 3962,\n\t\"./Script/Kawi.js\": 99140,\n\t\"./Script/Kayah_Li.js\": 88425,\n\t\"./Script/Kharoshthi.js\": 11648,\n\t\"./Script/Khitan_Small_Script.js\": 67968,\n\t\"./Script/Khmer.js\": 21205,\n\t\"./Script/Khojki.js\": 5794,\n\t\"./Script/Khudawadi.js\": 95492,\n\t\"./Script/Lao.js\": 29088,\n\t\"./Script/Latin.js\": 59992,\n\t\"./Script/Lepcha.js\": 66891,\n\t\"./Script/Limbu.js\": 33324,\n\t\"./Script/Linear_A.js\": 74596,\n\t\"./Script/Linear_B.js\": 1620,\n\t\"./Script/Lisu.js\": 42747,\n\t\"./Script/Lycian.js\": 1657,\n\t\"./Script/Lydian.js\": 79038,\n\t\"./Script/Mahajani.js\": 58990,\n\t\"./Script/Makasar.js\": 31935,\n\t\"./Script/Malayalam.js\": 15666,\n\t\"./Script/Mandaic.js\": 81458,\n\t\"./Script/Manichaean.js\": 49002,\n\t\"./Script/Marchen.js\": 38394,\n\t\"./Script/Masaram_Gondi.js\": 13910,\n\t\"./Script/Medefaidrin.js\": 91850,\n\t\"./Script/Meetei_Mayek.js\": 43034,\n\t\"./Script/Mende_Kikakui.js\": 51271,\n\t\"./Script/Meroitic_Cursive.js\": 70039,\n\t\"./Script/Meroitic_Hieroglyphs.js\": 28978,\n\t\"./Script/Miao.js\": 41801,\n\t\"./Script/Modi.js\": 28146,\n\t\"./Script/Mongolian.js\": 34848,\n\t\"./Script/Mro.js\": 75485,\n\t\"./Script/Multani.js\": 45988,\n\t\"./Script/Myanmar.js\": 76042,\n\t\"./Script/Nabataean.js\": 81263,\n\t\"./Script/Nag_Mundari.js\": 17318,\n\t\"./Script/Nandinagari.js\": 16087,\n\t\"./Script/New_Tai_Lue.js\": 93938,\n\t\"./Script/Newa.js\": 12645,\n\t\"./Script/Nko.js\": 41687,\n\t\"./Script/Nushu.js\": 19566,\n\t\"./Script/Nyiakeng_Puachue_Hmong.js\": 57324,\n\t\"./Script/Ogham.js\": 28054,\n\t\"./Script/Ol_Chiki.js\": 50326,\n\t\"./Script/Old_Hungarian.js\": 89704,\n\t\"./Script/Old_Italic.js\": 81737,\n\t\"./Script/Old_North_Arabian.js\": 60623,\n\t\"./Script/Old_Permic.js\": 84547,\n\t\"./Script/Old_Persian.js\": 4062,\n\t\"./Script/Old_Sogdian.js\": 91435,\n\t\"./Script/Old_South_Arabian.js\": 17744,\n\t\"./Script/Old_Turkic.js\": 85004,\n\t\"./Script/Old_Uyghur.js\": 56299,\n\t\"./Script/Oriya.js\": 61702,\n\t\"./Script/Osage.js\": 66820,\n\t\"./Script/Osmanya.js\": 68741,\n\t\"./Script/Pahawh_Hmong.js\": 43421,\n\t\"./Script/Palmyrene.js\": 71540,\n\t\"./Script/Pau_Cin_Hau.js\": 1646,\n\t\"./Script/Phags_Pa.js\": 79532,\n\t\"./Script/Phoenician.js\": 17297,\n\t\"./Script/Psalter_Pahlavi.js\": 59563,\n\t\"./Script/Rejang.js\": 15670,\n\t\"./Script/Runic.js\": 15180,\n\t\"./Script/Samaritan.js\": 85123,\n\t\"./Script/Saurashtra.js\": 40061,\n\t\"./Script/Sharada.js\": 72487,\n\t\"./Script/Shavian.js\": 59504,\n\t\"./Script/Siddham.js\": 565,\n\t\"./Script/SignWriting.js\": 19877,\n\t\"./Script/Sinhala.js\": 66662,\n\t\"./Script/Sogdian.js\": 11761,\n\t\"./Script/Sora_Sompeng.js\": 35055,\n\t\"./Script/Soyombo.js\": 62187,\n\t\"./Script/Sundanese.js\": 78461,\n\t\"./Script/Syloti_Nagri.js\": 74405,\n\t\"./Script/Syriac.js\": 15815,\n\t\"./Script/Tagalog.js\": 2333,\n\t\"./Script/Tagbanwa.js\": 38249,\n\t\"./Script/Tai_Le.js\": 29852,\n\t\"./Script/Tai_Tham.js\": 59997,\n\t\"./Script/Tai_Viet.js\": 92465,\n\t\"./Script/Takri.js\": 95234,\n\t\"./Script/Tamil.js\": 59527,\n\t\"./Script/Tangsa.js\": 946,\n\t\"./Script/Tangut.js\": 86011,\n\t\"./Script/Telugu.js\": 4866,\n\t\"./Script/Thaana.js\": 36876,\n\t\"./Script/Thai.js\": 71517,\n\t\"./Script/Tibetan.js\": 49897,\n\t\"./Script/Tifinagh.js\": 71384,\n\t\"./Script/Tirhuta.js\": 51862,\n\t\"./Script/Toto.js\": 79830,\n\t\"./Script/Ugaritic.js\": 92019,\n\t\"./Script/Vai.js\": 57677,\n\t\"./Script/Vithkuqi.js\": 10301,\n\t\"./Script/Wancho.js\": 12679,\n\t\"./Script/Warang_Citi.js\": 79917,\n\t\"./Script/Yezidi.js\": 33172,\n\t\"./Script/Yi.js\": 94344,\n\t\"./Script/Zanabazar_Square.js\": 90753,\n\t\"./Script_Extensions/Adlam.js\": 38937,\n\t\"./Script_Extensions/Ahom.js\": 9811,\n\t\"./Script_Extensions/Anatolian_Hieroglyphs.js\": 11878,\n\t\"./Script_Extensions/Arabic.js\": 98988,\n\t\"./Script_Extensions/Armenian.js\": 50944,\n\t\"./Script_Extensions/Avestan.js\": 96478,\n\t\"./Script_Extensions/Balinese.js\": 28898,\n\t\"./Script_Extensions/Bamum.js\": 42809,\n\t\"./Script_Extensions/Bassa_Vah.js\": 36382,\n\t\"./Script_Extensions/Batak.js\": 18210,\n\t\"./Script_Extensions/Bengali.js\": 39762,\n\t\"./Script_Extensions/Bhaiksuki.js\": 69666,\n\t\"./Script_Extensions/Bopomofo.js\": 87754,\n\t\"./Script_Extensions/Brahmi.js\": 94830,\n\t\"./Script_Extensions/Braille.js\": 65528,\n\t\"./Script_Extensions/Buginese.js\": 3789,\n\t\"./Script_Extensions/Buhid.js\": 53126,\n\t\"./Script_Extensions/Canadian_Aboriginal.js\": 61228,\n\t\"./Script_Extensions/Carian.js\": 26604,\n\t\"./Script_Extensions/Caucasian_Albanian.js\": 68874,\n\t\"./Script_Extensions/Chakma.js\": 57717,\n\t\"./Script_Extensions/Cham.js\": 50272,\n\t\"./Script_Extensions/Cherokee.js\": 48334,\n\t\"./Script_Extensions/Chorasmian.js\": 61166,\n\t\"./Script_Extensions/Common.js\": 73219,\n\t\"./Script_Extensions/Coptic.js\": 33538,\n\t\"./Script_Extensions/Cuneiform.js\": 59678,\n\t\"./Script_Extensions/Cypriot.js\": 45995,\n\t\"./Script_Extensions/Cypro_Minoan.js\": 19536,\n\t\"./Script_Extensions/Cyrillic.js\": 18638,\n\t\"./Script_Extensions/Deseret.js\": 77756,\n\t\"./Script_Extensions/Devanagari.js\": 85640,\n\t\"./Script_Extensions/Dives_Akuru.js\": 97606,\n\t\"./Script_Extensions/Dogra.js\": 80650,\n\t\"./Script_Extensions/Duployan.js\": 4539,\n\t\"./Script_Extensions/Egyptian_Hieroglyphs.js\": 41585,\n\t\"./Script_Extensions/Elbasan.js\": 40751,\n\t\"./Script_Extensions/Elymaic.js\": 8933,\n\t\"./Script_Extensions/Ethiopic.js\": 56370,\n\t\"./Script_Extensions/Georgian.js\": 60656,\n\t\"./Script_Extensions/Glagolitic.js\": 22125,\n\t\"./Script_Extensions/Gothic.js\": 56298,\n\t\"./Script_Extensions/Grantha.js\": 86631,\n\t\"./Script_Extensions/Greek.js\": 80161,\n\t\"./Script_Extensions/Gujarati.js\": 41962,\n\t\"./Script_Extensions/Gunjala_Gondi.js\": 46189,\n\t\"./Script_Extensions/Gurmukhi.js\": 8194,\n\t\"./Script_Extensions/Han.js\": 5545,\n\t\"./Script_Extensions/Hangul.js\": 94337,\n\t\"./Script_Extensions/Hanifi_Rohingya.js\": 25890,\n\t\"./Script_Extensions/Hanunoo.js\": 54191,\n\t\"./Script_Extensions/Hatran.js\": 62640,\n\t\"./Script_Extensions/Hebrew.js\": 26210,\n\t\"./Script_Extensions/Hiragana.js\": 4645,\n\t\"./Script_Extensions/Imperial_Aramaic.js\": 47790,\n\t\"./Script_Extensions/Inherited.js\": 65719,\n\t\"./Script_Extensions/Inscriptional_Pahlavi.js\": 58626,\n\t\"./Script_Extensions/Inscriptional_Parthian.js\": 50167,\n\t\"./Script_Extensions/Javanese.js\": 29743,\n\t\"./Script_Extensions/Kaithi.js\": 11958,\n\t\"./Script_Extensions/Kannada.js\": 26161,\n\t\"./Script_Extensions/Katakana.js\": 58831,\n\t\"./Script_Extensions/Kawi.js\": 93386,\n\t\"./Script_Extensions/Kayah_Li.js\": 65916,\n\t\"./Script_Extensions/Kharoshthi.js\": 97319,\n\t\"./Script_Extensions/Khitan_Small_Script.js\": 82273,\n\t\"./Script_Extensions/Khmer.js\": 21654,\n\t\"./Script_Extensions/Khojki.js\": 60840,\n\t\"./Script_Extensions/Khudawadi.js\": 84937,\n\t\"./Script_Extensions/Lao.js\": 3895,\n\t\"./Script_Extensions/Latin.js\": 34462,\n\t\"./Script_Extensions/Lepcha.js\": 55753,\n\t\"./Script_Extensions/Limbu.js\": 82970,\n\t\"./Script_Extensions/Linear_A.js\": 61456,\n\t\"./Script_Extensions/Linear_B.js\": 7475,\n\t\"./Script_Extensions/Lisu.js\": 82841,\n\t\"./Script_Extensions/Lycian.js\": 25245,\n\t\"./Script_Extensions/Lydian.js\": 40610,\n\t\"./Script_Extensions/Mahajani.js\": 71461,\n\t\"./Script_Extensions/Makasar.js\": 90995,\n\t\"./Script_Extensions/Malayalam.js\": 4201,\n\t\"./Script_Extensions/Mandaic.js\": 85976,\n\t\"./Script_Extensions/Manichaean.js\": 61361,\n\t\"./Script_Extensions/Marchen.js\": 51089,\n\t\"./Script_Extensions/Masaram_Gondi.js\": 75850,\n\t\"./Script_Extensions/Medefaidrin.js\": 35394,\n\t\"./Script_Extensions/Meetei_Mayek.js\": 65222,\n\t\"./Script_Extensions/Mende_Kikakui.js\": 56734,\n\t\"./Script_Extensions/Meroitic_Cursive.js\": 48438,\n\t\"./Script_Extensions/Meroitic_Hieroglyphs.js\": 63315,\n\t\"./Script_Extensions/Miao.js\": 89426,\n\t\"./Script_Extensions/Modi.js\": 56126,\n\t\"./Script_Extensions/Mongolian.js\": 48441,\n\t\"./Script_Extensions/Mro.js\": 96237,\n\t\"./Script_Extensions/Multani.js\": 12152,\n\t\"./Script_Extensions/Myanmar.js\": 88384,\n\t\"./Script_Extensions/Nabataean.js\": 22445,\n\t\"./Script_Extensions/Nag_Mundari.js\": 48651,\n\t\"./Script_Extensions/Nandinagari.js\": 54947,\n\t\"./Script_Extensions/New_Tai_Lue.js\": 25650,\n\t\"./Script_Extensions/Newa.js\": 997,\n\t\"./Script_Extensions/Nko.js\": 35334,\n\t\"./Script_Extensions/Nushu.js\": 38408,\n\t\"./Script_Extensions/Nyiakeng_Puachue_Hmong.js\": 53615,\n\t\"./Script_Extensions/Ogham.js\": 72435,\n\t\"./Script_Extensions/Ol_Chiki.js\": 6286,\n\t\"./Script_Extensions/Old_Hungarian.js\": 10512,\n\t\"./Script_Extensions/Old_Italic.js\": 7259,\n\t\"./Script_Extensions/Old_North_Arabian.js\": 79715,\n\t\"./Script_Extensions/Old_Permic.js\": 84513,\n\t\"./Script_Extensions/Old_Persian.js\": 29058,\n\t\"./Script_Extensions/Old_Sogdian.js\": 22883,\n\t\"./Script_Extensions/Old_South_Arabian.js\": 25750,\n\t\"./Script_Extensions/Old_Turkic.js\": 38028,\n\t\"./Script_Extensions/Old_Uyghur.js\": 82038,\n\t\"./Script_Extensions/Oriya.js\": 93543,\n\t\"./Script_Extensions/Osage.js\": 55599,\n\t\"./Script_Extensions/Osmanya.js\": 6499,\n\t\"./Script_Extensions/Pahawh_Hmong.js\": 87093,\n\t\"./Script_Extensions/Palmyrene.js\": 33203,\n\t\"./Script_Extensions/Pau_Cin_Hau.js\": 32175,\n\t\"./Script_Extensions/Phags_Pa.js\": 80475,\n\t\"./Script_Extensions/Phoenician.js\": 88683,\n\t\"./Script_Extensions/Psalter_Pahlavi.js\": 13132,\n\t\"./Script_Extensions/Rejang.js\": 10643,\n\t\"./Script_Extensions/Runic.js\": 92370,\n\t\"./Script_Extensions/Samaritan.js\": 62803,\n\t\"./Script_Extensions/Saurashtra.js\": 69504,\n\t\"./Script_Extensions/Sharada.js\": 57957,\n\t\"./Script_Extensions/Shavian.js\": 15581,\n\t\"./Script_Extensions/Siddham.js\": 45898,\n\t\"./Script_Extensions/SignWriting.js\": 73338,\n\t\"./Script_Extensions/Sinhala.js\": 54400,\n\t\"./Script_Extensions/Sogdian.js\": 69554,\n\t\"./Script_Extensions/Sora_Sompeng.js\": 82168,\n\t\"./Script_Extensions/Soyombo.js\": 55339,\n\t\"./Script_Extensions/Sundanese.js\": 17361,\n\t\"./Script_Extensions/Syloti_Nagri.js\": 7453,\n\t\"./Script_Extensions/Syriac.js\": 49190,\n\t\"./Script_Extensions/Tagalog.js\": 78050,\n\t\"./Script_Extensions/Tagbanwa.js\": 6896,\n\t\"./Script_Extensions/Tai_Le.js\": 30486,\n\t\"./Script_Extensions/Tai_Tham.js\": 43272,\n\t\"./Script_Extensions/Tai_Viet.js\": 2338,\n\t\"./Script_Extensions/Takri.js\": 15222,\n\t\"./Script_Extensions/Tamil.js\": 25234,\n\t\"./Script_Extensions/Tangsa.js\": 14113,\n\t\"./Script_Extensions/Tangut.js\": 12606,\n\t\"./Script_Extensions/Telugu.js\": 60209,\n\t\"./Script_Extensions/Thaana.js\": 34190,\n\t\"./Script_Extensions/Thai.js\": 24815,\n\t\"./Script_Extensions/Tibetan.js\": 65333,\n\t\"./Script_Extensions/Tifinagh.js\": 98578,\n\t\"./Script_Extensions/Tirhuta.js\": 25740,\n\t\"./Script_Extensions/Toto.js\": 20190,\n\t\"./Script_Extensions/Ugaritic.js\": 41418,\n\t\"./Script_Extensions/Vai.js\": 95619,\n\t\"./Script_Extensions/Vithkuqi.js\": 4862,\n\t\"./Script_Extensions/Wancho.js\": 80134,\n\t\"./Script_Extensions/Warang_Citi.js\": 61158,\n\t\"./Script_Extensions/Yezidi.js\": 25,\n\t\"./Script_Extensions/Yi.js\": 47685,\n\t\"./Script_Extensions/Zanabazar_Square.js\": 92290,\n\t\"./index.js\": 31714,\n\t\"./unicode-version.js\": 35362\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 38531;","var parent = require('../../stable/object/assign');\n\nmodule.exports = parent;\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","module.exports = require('../../full/object/assign');\n","var parent = require('../../actual/object/assign');\n\nmodule.exports = parent;\n","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 isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\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 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 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","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 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 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 uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\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 getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\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 $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","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\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","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 global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\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","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\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","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","var parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals() {\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGoogleAnalytics(data);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\n\nfunction sendToGoogleAnalytics({\n name,\n value,\n id\n}) {\n window.ga(`send`, `event`, {\n eventCategory: `Web Vitals`,\n eventAction: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n eventLabel: id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n eventValue: Math.round(name === `CLS` ? value * 1000 : value),\n // Use a non-interaction event to avoid affecting bounce rate.\n nonInteraction: true,\n // Use `sendBeacon()` if the browser supports it.\n transport: `beacon`\n });\n}\n\nexport const onRouteUpdate = ({\n location\n}, pluginOptions = {}) => {\n const ga = window.ga;\n\n if (process.env.NODE_ENV !== `production` || typeof ga !== `function`) {\n return null;\n }\n\n const pathIsExcluded = location && typeof window.excludeGAPaths !== `undefined` && window.excludeGAPaths.some(rx => rx.test(location.pathname));\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n const sendPageView = () => {\n const pagePath = location ? location.pathname + location.search + location.hash : undefined;\n ga(`set`, `page`, pagePath);\n ga(`send`, `pageview`);\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n const delay = Math.max(32, pluginOptions.pageTransitionDelay || 0);\n setTimeout(sendPageView, delay);\n return null;\n};\nexport function onInitialClientRender(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` && typeof ga === `function` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals();\n }\n}","import React, { useEffect } from 'react'\r\nimport { graphql, StaticQuery } from 'gatsby'\r\nimport styled, { createGlobalStyle } from '@xstyled/styled-components'\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n #carbonads {\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu,\r\n Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n }\r\n\r\n #carbonads {\r\n display: inline-flex;\r\n background-color: background-light;\r\n border: 1;\r\n border-color: layout-border;\r\n box-shadow: none;\r\n }\r\n\r\n #carbonads a {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n #carbonads a:hover {\r\n color: inherit;\r\n }\r\n\r\n #carbonads span {\r\n position: relative;\r\n display: block;\r\n overflow: hidden;\r\n }\r\n\r\n #carbonads .carbon-wrap {\r\n display: flex;\r\n }\r\n\r\n .carbon-img {\r\n display: block;\r\n margin: 0;\r\n line-height: 1;\r\n }\r\n\r\n .carbon-img img {\r\n display: block;\r\n }\r\n\r\n .carbon-text {\r\n font-size: 13px;\r\n padding: 10px;\r\n line-height: 1.5;\r\n text-align: left;\r\n }\r\n\r\n .carbon-poweredby {\r\n display: block;\r\n padding: 8px 10px;\r\n background: repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4);\r\n text-align: center;\r\n text-transform: uppercase;\r\n letter-spacing: .5px;\r\n font-weight: 600;\r\n font-size: 9px;\r\n line-height: 1;\r\n }\r\n`\r\n\r\nconst QUERY = graphql`\r\n query CodeFund {\r\n site {\r\n siteMetadata {\r\n carbonAdsURL\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst AdContainer = styled.aside`\r\n display: block;\r\n height: 125;\r\n min-width: 1;\r\n margin: 3 0;\r\n`\r\n\r\nfunction InnerCarbonAd({ url }) {\r\n const ref = React.useRef()\r\n useEffect(() => {\r\n const wrapper = ref.current\r\n const script = document.createElement('script')\r\n script.src = url\r\n script.async = true\r\n script.id = '_carbonads_js'\r\n wrapper.appendChild(script)\r\n return () => {\r\n wrapper.removeChild(script)\r\n }\r\n }, [url])\r\n return (\r\n <>\r\n \r\n
\r\n >\r\n )\r\n}\r\n\r\nexport function CarbonAd() {\r\n return (\r\n \r\n data.site.siteMetadata.carbonAdsURL ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n />\r\n )\r\n}\r\n","import styled, { up, css } from '@xstyled/styled-components'\r\n\r\nexport const TableContainer = styled.div`\r\n overflow-y: auto;\r\n margin: 3 0 2;\r\n\r\n ${up(\r\n 'lg',\r\n css`\r\n max-height: 480;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Table = styled.table`\r\n width: 100%;\r\n text-align: left;\r\n border-collapse: collapse;\r\n font-size: 90%;\r\n\r\n tr {\r\n background-color: transparent;\r\n }\r\n\r\n td,\r\n th {\r\n padding: 2 3;\r\n }\r\n\r\n th {\r\n color: on-background-light;\r\n background-color: background-light;\r\n font-weight: 600;\r\n z-index: 20;\r\n position: sticky;\r\n top: 0;\r\n }\r\n\r\n td {\r\n font-size: 85%;\r\n border-top: 1;\r\n border-bottom: 1;\r\n border-color: layout-border;\r\n }\r\n`\r\n","import React from 'react'\r\nimport { MDXProvider as BaseMDXProvider } from '@mdx-js/react'\r\nimport { Code } from './Code'\r\nimport { CarbonAd } from './CarbonAd'\r\nimport { Table, TableContainer } from './Table'\r\n\r\nfunction transformCode({ children, className, ...props }) {\r\n const lang = className && className.split('-')[1]\r\n return (\r\n \r\n {children}\r\n
\r\n )\r\n}\r\n\r\nfunction getCodeChild(children) {\r\n const childrenArray = React.Children.toArray(children)\r\n if (childrenArray.length !== 1) return null\r\n const [firstChild] = childrenArray\r\n if (firstChild.type !== 'code') return null\r\n return firstChild\r\n}\r\n\r\nexport const mdxComponents = {\r\n 'carbon-ad': () => ,\r\n pre: ({ children }) => {\r\n const codeChild = getCodeChild(children)\r\n return codeChild ? transformCode(codeChild.props) : {children} \r\n },\r\n table: ({ children }) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n },\r\n}\r\n\r\nexport function MDXProvider({ children, components }) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols; // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n} // @private\n\n\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n } // prettier-ignore\n\n\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n/**\n * Check if a string ends with something\n * @private\n */\n\n\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\nvar pixelsto = pxtoFactory;\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em = /*#__PURE__*/pixelsto('em');\nvar em$1 = em;\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\n\nvar rem = /*#__PURE__*/pixelsto('rem');\nvar rem$1 = rem;\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\n\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\n\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\n\n\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\n\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings; // Error Handling\n\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\n\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\n\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\n\n\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\n\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\n\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n/* eslint-disable key-spacing */\n\n\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\n\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n\n\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n} // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\n\n\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\nvar curriedDarken$1 = curriedDarken;\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\nvar curriedLighten$1 = curriedLighten;\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\nvar mix$1 = curriedMix;\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar curriedOpacify$1 = curriedOpacify;\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\n\n\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\nvar curriedShade$1 = curriedShade;\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\nvar curriedTint$1 = curriedTint;\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Allow single or multiple animations passed\n\n\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\n\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\n\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\n\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\n\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\n\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\n\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\n\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\n\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import { transparentize } from 'polished'\r\nimport { css, th, defaultTheme, aliasColor } from '@xstyled/styled-components'\r\n\r\nexport function primaryColor(color) {\r\n return aliasColor('primary', color)\r\n}\r\n\r\nexport const theme = {\r\n initialColorModeName: 'light',\r\n ...defaultTheme,\r\n global: css`\r\n html,\r\n body {\r\n transition: 300ms ease-in color, 300ms ease-in background-color;\r\n margin: 0;\r\n font-family: base;\r\n background-color: background;\r\n color: on-background;\r\n line-height: base;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n }\r\n \r\n img {\r\n display: inline-block;\r\n }\r\n\r\n :focus {\r\n outline-color: primary-500;\r\n }\r\n blockquote.quote {\r\n background-color: var(--xstyled-colors-editor-background,#18181b);\r\n margin: 3vw 3vw;\r\n box-sizing: border-box;\r\n position: relative;\r\n font-size: 24px;\r\n padding: 1vw 5vw;\r\n border-radius: 8px;\r\n \r\n font-style: italic;\r\n }\r\n @media (min-width: 768px) {\r\n blockquote.quote:before {\r\n width: 6vw;\r\n height: 7vw;\r\n top: 50%;\r\n left: 0;\r\n transform: translate(-50%, -50%);\r\n }\r\n }\r\n blockquote.quote:before {\r\n content: \"\";\r\n background-image: url(/resources/quote.svg);\r\n position: absolute;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n }\r\n .xstyled-color-mode-light blockquote.quote {\r\n color: black;\r\n background-color: #d4d4d8;\r\n border-color: #a8a8af;\r\n }\r\n \r\n .wide-feature-text h3 {\r\n font-size: 38px;\r\n text-align: center;\r\n }\r\n .wide-feature-text p {\r\n font-size: 24px;\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text ul {\r\n font-size: 24px;\r\n list-style-type: \"👉 \";\r\n margin-left: 3rem;\r\n }\r\n .wide-feature-text li {\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text strong,\r\n strong.orange {\r\n color: #F2A41F;\r\n // font-weight: normal;\r\n }\r\n \r\n .home-screenshots {\r\n margin-bottom: 2rem;\r\n }\r\n .home-screenshots h2 {\r\n font-size: 34px;\r\n font-weight: 400;\r\n margin-top: 3rem;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n .home-screenshots img {\r\n width: 80%;\r\n }\r\n \r\n \r\n .home-links {\r\n text-align: center;\r\n display: flex;\r\n }\r\n .home-links > * {\r\n width:30%;\r\n padding: 1rem;\r\n }\r\n\r\n .home-links a {\r\n color: var(--xstyled-colors-on-background, #ffffff)!important;\r\n }\r\n \r\n h3 {\r\n font-size: 1.17em;\r\n margin-bottom: 0.5em;\r\n }\r\n \r\n .carousel__back-button, .carousel__next-button {\r\n background: transparent;\r\n }\r\n\r\n `,\r\n 'prism-theme': () => ({\r\n styles: [\r\n {\r\n types: ['comment'],\r\n style: {\r\n color: 'rgb(106, 171, 115)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['line-comment'],\r\n style: {\r\n color: 'rgb(99,103,100)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['zdl-keyword', 'keyword'],\r\n style: {\r\n color: 'rgb(207, 142, 107)',\r\n },\r\n },\r\n {\r\n types: ['zdl-annotation', 'zdl-validation'],\r\n style: {\r\n color: 'rgb(179, 174, 96)',\r\n },\r\n },\r\n {\r\n types: ['zdl-class-name'],\r\n style: {\r\n color: 'rgb(102,127,209)',\r\n },\r\n },\r\n {\r\n types: ['zdl-field'],\r\n style: {\r\n color: 'rgb(198, 120, 221)',\r\n },\r\n },\r\n {\r\n types: ['punctuation'],\r\n style: {\r\n color: 'rgb(230,233,236)', // fixme\r\n },\r\n },\r\n {\r\n types: ['boolean', 'bool', 'char', 'number'],\r\n style: {\r\n color: 'rgb(33,51,157)',// fixme\r\n },\r\n },\r\n {\r\n types: ['tag'],\r\n style: {\r\n color: 'rgb(229, 192, 123)',\r\n },\r\n },\r\n {\r\n types: ['operator'],\r\n style: {\r\n color: 'rgb(171, 178, 191)',\r\n },\r\n },\r\n {\r\n types: ['string'],\r\n style: {\r\n color: 'rgb(152, 195, 121)',\r\n },\r\n },\r\n {\r\n types: ['attr-name', 'comment'],\r\n style: {\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['function'],\r\n style: {\r\n color: 'rgb(97, 175, 239)',\r\n },\r\n },\r\n ],\r\n }),\r\n fonts: {\r\n base: '-apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif',\r\n },\r\n lineHeights: {\r\n base: 1.4,\r\n control: th.lineHeight('base'),\r\n },\r\n transitions: {\r\n base: '300ms ease all',\r\n fast: '150ms cubic-bezier(0.215, 0.61, 0.355, 1) all',\r\n control: th.transition('base'),\r\n },\r\n radii: {\r\n base: 4,\r\n control: th.radius('base'),\r\n editor: th.radius('base'),\r\n blockquote: th.radius('base'),\r\n },\r\n borderWidths: {\r\n base: 1,\r\n control: th.borderWidth('base'),\r\n },\r\n shadows: {\r\n focus: (p) => `0 0 0 ${th.px(2)(p)} ${th.color('primary-a500')(p)}`,\r\n 'control-focus': th.shadow('focus'),\r\n },\r\n sizes: {\r\n screen: 1669, // 1440,\r\n },\r\n space: {\r\n 0: 0,\r\n 1: 4,\r\n 2: 8,\r\n 3: 16,\r\n 4: 24,\r\n 5: 48,\r\n 6: 96,\r\n 7: 144,\r\n 8: 192,\r\n 9: 240,\r\n 'preview-padding-y': 16,\r\n 'preview-padding-x': 24,\r\n },\r\n colors: {\r\n ...defaultTheme.colors,\r\n\r\n // Primary = indigo\r\n ...aliasColor('primary', 'indigo'),\r\n\r\n primary: th.color('primary-500'),\r\n 'primary-a500': (p) => transparentize(0.5, th.color('primary-500')(p)),\r\n\r\n background: th.color('white'),\r\n 'background-light': th.color('gray-100'),\r\n 'background-primary': th.color('primary-100'),\r\n 'background-mark': th.color('yellow-200'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('black'),\r\n 'on-background-light': th.color('gray-700'),\r\n 'on-background-primary': th.color('primary-700'),\r\n 'on-background-primary-dark': th.color('primary-800'),\r\n\r\n 'layout-border': th.color('gray-300'),\r\n\r\n 'control-background': th.color('gray-100'),\r\n 'control-placeholder': th.color('gray-600'),\r\n 'control-on': th.color('gray-900'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-400'),\r\n\r\n 'editor-background': th.color('gray-900'),\r\n 'editor-on': th.color('gray-100'),\r\n 'editor-border': th.color('layout-border'),\r\n\r\n 'blockquote-link': th.color('yellow-800'),\r\n 'blockquote-background': th.color('yellow-200'),\r\n 'blockquote-border': th.color('yellow'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-200'),\r\n 'doc-search-suggestion-highlight-on-background': th.color('primary-800'),\r\n 'doc-search-suggestion-content-background': th.color('primary-100'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-700'),\r\n\r\n modes: {\r\n dark: {\r\n background: th.color('gray-900'),\r\n 'editor-background': th.color('black'),\r\n 'background-light': th.color('gray-800'),\r\n 'background-primary': th.color('primary-900'),\r\n 'background-mark': th.color('yellow-500'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('white'),\r\n 'on-background-light': th.color('gray-300'),\r\n 'on-background-primary': th.color('primary-300'),\r\n 'on-background-primary-dark': th.color('primary-200'),\r\n\r\n 'layout-border': th.color('gray-700'),\r\n\r\n 'control-background': th.color('gray-800'),\r\n 'control-placeholder': th.color('gray-400'),\r\n 'control-on': th.color('gray-100'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-600'),\r\n\r\n 'blockquote-link': th.color('yellow-200'),\r\n 'blockquote-background': th.color('yellow-900'),\r\n 'blockquote-border': th.color('yellow-300'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-800'),\r\n 'doc-search-suggestion-highlight-on-background':\r\n th.color('primary-200'),\r\n 'doc-search-suggestion-content-background': th.color('primary-900'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-300'),\r\n },\r\n },\r\n },\r\n}\r\n","import React from 'react'\r\nimport {\r\n createGlobalStyle,\r\n ThemeProvider as SCThemeProvider,\r\n th,\r\n} from '@xstyled/styled-components'\r\nimport { theme } from '../theme'\r\n\r\nexport const GlobalStyle = createGlobalStyle`\r\n ${th('global')}\r\n`\r\n\r\nexport function ThemeProvider({ children }) {\r\n return {children} \r\n}\r\n","import React from 'react'\r\nimport { ColorModeProvider, Preflight } from '@xstyled/styled-components'\r\nimport { MDXProvider } from './MDX'\r\nimport { GlobalStyle, ThemeProvider } from './Theme'\r\n\r\nexport function RootWrapper({ children }) {\r\n return (\r\n \r\n \r\n \r\n \r\n {children} \r\n \r\n \r\n )\r\n}\r\n","import { useDisclosureState } from '../disclosure/disclosure-state.js';\n/**\n * Provides state for the `Dialog` components.\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Open dialog \n * Content \n * ```\n */\n\nfunction useDialogState(props) {\n if (props === void 0) {\n props = {};\n }\n\n const disclosure = useDisclosureState(props);\n return disclosure;\n}\n\nexport { useDialogState };","import { useRef, useState, useCallback, useMemo } from 'react';\nimport { useControlledState, usePreviousValue } from 'ariakit-utils/hooks';\n/**\n * Provides state for the `Disclosure` components.\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure \n * Content \n * ```\n */\n\nfunction useDisclosureState(_temp) {\n var _props$defaultOpen;\n\n let {\n animated = false,\n ...props\n } = _temp === void 0 ? {} : _temp;\n const disclosureRef = useRef(null);\n const [open, setOpen] = useControlledState((_props$defaultOpen = props.defaultOpen) != null ? _props$defaultOpen : false, props.open, props.setOpen);\n const [contentElement, setContentElement] = useState(null);\n const [animating, setAnimating] = useState(!!animated && open);\n const prevOpen = usePreviousValue(open);\n const mounted = open || animating;\n\n if (animated && !animating && prevOpen !== open) {\n setAnimating(true);\n }\n\n const show = useCallback(() => setOpen(true), [setOpen]);\n const hide = useCallback(() => setOpen(false), [setOpen]);\n const toggle = useCallback(() => setOpen(v => !v), [setOpen]);\n const stopAnimation = useCallback(() => setAnimating(false), []);\n const state = useMemo(() => ({\n disclosureRef,\n open,\n mounted,\n animated,\n animating,\n contentElement,\n setContentElement,\n setOpen,\n show,\n hide,\n toggle,\n stopAnimation\n }), [open, mounted, animated, animating, contentElement, setContentElement, setOpen, show, hide, toggle, stopAnimation]);\n return state;\n}\n\nexport { useDisclosureState };","import { useState } from 'react';\nimport { useId, useSafeLayoutEffect, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { flushSync } from 'react-dom';\n\nfunction afterTimeout(timeoutMs, cb) {\n const timeoutId = setTimeout(cb, timeoutMs);\n return () => clearTimeout(timeoutId);\n}\n\nfunction afterPaint(cb) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\n\nfunction parseCSSTime() {\n for (var _len = arguments.length, times = new Array(_len), _key = 0; _key < _len; _key++) {\n times[_key] = arguments[_key];\n }\n\n return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n const currentTime = parseFloat(currentTimeString || \"0s\") * 1000; // When multiple times are specified, we want to use the longest one so we\n // wait until the longest transition has finished.\n\n if (currentTime > longestTime) return currentTime;\n return longestTime;\n }, 0);\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosureContent({ state });\n * Disclosure \n * Content \n * ```\n */\n\n\nconst useDisclosureContent = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n const id = useId(props.id);\n const [transition, setTransition] = useState(null);\n useSafeLayoutEffect(() => {\n var _state$contentElement;\n\n if (!state.animated) return; // When the disclosure content element is rendered in a portal, we need to\n // wait for the portal to be mounted and connected to the DOM before we\n // can start the animation.\n\n if (!((_state$contentElement = state.contentElement) != null && _state$contentElement.isConnected)) {\n setTransition(null);\n return;\n } // Double requestAnimationFrame is necessary here to avoid potential bugs\n // when the data attribute is added before the element is fully rendered\n // in the DOM, which wouldn't trigger the animation.\n\n\n return afterPaint(() => {\n setTransition(state.open ? \"enter\" : \"leave\");\n });\n }, [state.animated, state.contentElement, state.open]);\n useSafeLayoutEffect(() => {\n if (!state.animated) return;\n if (!state.contentElement) return;\n if (!transition) return;\n if (transition === \"enter\" && !state.open) return;\n if (transition === \"leave\" && state.open) return; // When the animated state is a number, the user has manually set the\n // animation timeout, so we just respect it.\n\n if (typeof state.animated === \"number\") {\n const timeoutMs = state.animated;\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n } // Otherwise, we need to parse the CSS transition/animation duration and\n // delay to know when the animation ends. This is safer than relying on\n // the transitionend/animationend events because it's not guaranteed that\n // these events will fire. For example, if the element is removed from the\n // DOM before the animation ends or if the animation wasn't triggered in\n // the first place, the events won't fire.\n\n\n const {\n transitionDuration,\n animationDuration,\n transitionDelay,\n animationDelay\n } = getComputedStyle(state.contentElement);\n const delay = parseCSSTime(transitionDelay, animationDelay);\n const duration = parseCSSTime(transitionDuration, animationDuration);\n const timeoutMs = delay + duration; // If the animation/transition delay and duration are 0, this means the\n // element is not animated with CSS (they may be using framer-motion,\n // react-spring, or something else). In this case, the user is responsible\n // for calling `stopAnimation` when the animation ends.\n\n if (!timeoutMs) return; // TODO: We should probably warn if `stopAnimation` hasn't been called\n // after X seconds.\n\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n }, [state.animated, state.contentElement, transition, state.open, state.stopAnimation]);\n const style = state.mounted || props.hidden === false ? props.style : { ...props.style,\n display: \"none\"\n };\n props = {\n id,\n \"data-enter\": transition === \"enter\" ? \"\" : undefined,\n \"data-leave\": transition === \"leave\" ? \"\" : undefined,\n hidden: !state.mounted,\n ...props,\n ref: useForkRef(id ? state.setContentElement : null, props.ref),\n style\n };\n return props;\n});\n/**\n * A component that renders an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure \n * Content \n * ```\n */\n\nconst DisclosureContent = createComponent(props => {\n const htmlProps = useDisclosureContent(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DisclosureContent.displayName = \"DisclosureContent\";\n}\n\nexport { DisclosureContent, useDisclosureContent };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component. When applying the props returned by this hook to a\n * component, the component will be visually hidden, but still accessible to\n * screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * const props = useVisuallyHidden();\n * \n * Learn more about the Solar System .\n * \n * ```\n */\n\nconst useVisuallyHidden = createHook(props => {\n props = { ...props,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n ...props.style\n }\n };\n return props;\n});\n/**\n * A component that renders an element that's visually hidden, but still\n * accessible to screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * \n * Learn more about the Solar System .\n * \n * ```\n */\n\nconst VisuallyHidden = createComponent(props => {\n const htmlProps = useVisuallyHidden(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n VisuallyHidden.displayName = \"VisuallyHidden\";\n}\n\nexport { VisuallyHidden, useVisuallyHidden };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useVisuallyHidden } from '../visually-hidden/visually-hidden.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * const props = useFocusTrap();\n * \n * ```\n */\n\nconst useFocusTrap = createHook(props => {\n props = {\n \"data-focus-trap\": \"\",\n tabIndex: 0,\n \"aria-hidden\": true,\n ...props,\n style: {\n // Prevents unintended scroll jumps.\n position: \"fixed\",\n top: 0,\n left: 0,\n ...props.style\n }\n };\n props = useVisuallyHidden(props);\n return props;\n});\n/**\n * A component that renders a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * \n * ```\n */\n\nconst FocusTrap = createComponent(props => {\n const htmlProps = useFocusTrap(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrap.displayName = \"FocusTrap\";\n}\n\nexport { FocusTrap, useFocusTrap };","import { useRef } from 'react';\nimport { getAllTabbableIn } from 'ariakit-utils/focus';\nimport { useWrapElement, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { FocusTrap } from './focus-trap.js';\nimport { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nconst useFocusTrapRegion = createHook(_ref => {\n let {\n enabled = false,\n ...props\n } = _ref;\n const ref = useRef(null);\n props = useWrapElement(props, element => {\n const renderFocusTrap = () => {\n if (!enabled) return null;\n return /*#__PURE__*/jsx(FocusTrap, {\n onFocus: event => {\n const container = ref.current;\n if (!container) return;\n const tabbables = getAllTabbableIn(container, true);\n const first = tabbables[0];\n const last = tabbables[tabbables.length - 1]; // Fallbacks to the container element\n\n if (!tabbables.length) {\n container.focus();\n return;\n }\n\n if (event.relatedTarget === first) {\n last == null ? void 0 : last.focus();\n } else {\n first == null ? void 0 : first.focus();\n }\n }\n });\n };\n\n return /*#__PURE__*/jsxs(Fragment, {\n children: [renderFocusTrap(), element, renderFocusTrap()]\n });\n }, [enabled]);\n props = { ...props,\n ref: useForkRef(ref, props.ref)\n };\n return props;\n});\n/**\n * A component that renders a focus trap region element.\n * @see https://ariakit.org/components/focus-trap-region\n * @example\n * ```jsx\n * \n * click me \n * trap focus \n * disabled Button \n * \n * ```\n */\n\nconst FocusTrapRegion = createComponent(props => {\n const htmlProps = useFocusTrapRegion(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrapRegion.displayName = \"FocusTrapRegion\";\n}\n\nexport { FocusTrapRegion, useFocusTrapRegion };","import { createContext } from 'react';\nconst HeadingContext = /*#__PURE__*/createContext(0);\nexport { HeadingContext as H };","import { useContext } from 'react';\nimport { H as HeadingContext } from '../__utils-5a52896b.js';\nimport { jsx } from 'react/jsx-runtime';\n\nfunction HeadingLevel(_ref) {\n let {\n level,\n children\n } = _ref;\n const contextLevel = useContext(HeadingContext);\n const nextLevel = Math.max(Math.min(level || contextLevel + 1, 6), 1);\n return /*#__PURE__*/jsx(HeadingContext.Provider, {\n value: nextLevel,\n children: children\n });\n}\n\nexport { HeadingLevel };","import { createContext } from 'react';\n/**\n * Stores the element that will contain the portal. By default, it will be the\n * body of the document.\n * @example\n * ```jsx\n * const container = document.getElementById(\"container\");\n *\n * function App() {\n * return (\n * \n * \n * \n * );\n * }\n * ```\n */\n\nconst PortalContext = /*#__PURE__*/createContext(null);\nexport { PortalContext };","import { useRef, useContext, useState, useEffect } from 'react';\nimport { getDocument } from 'ariakit-utils/dom';\nimport { isFocusEventOutside } from 'ariakit-utils/events';\nimport { getNextTabbable, getPreviousTabbable, restoreFocusIn, disableFocusIn } from 'ariakit-utils/focus';\nimport { useForkRef, useSafeLayoutEffect, useWrapElement } from 'ariakit-utils/hooks';\nimport { setRef, queueMicrotask } from 'ariakit-utils/misc';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { createPortal } from 'react-dom';\nimport { PortalContext } from './portal-context.js';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { FocusTrap } from '../focus-trap/focus-trap.js';\n\nfunction getRootElement(element) {\n return getDocument(element).body;\n}\n\nfunction getPortalElement(element, portalElement) {\n if (!portalElement) {\n return getDocument(element).createElement(\"div\");\n }\n\n if (typeof portalElement === \"function\") {\n return portalElement(element);\n }\n\n return portalElement;\n}\n\nfunction getRandomId(prefix) {\n if (prefix === void 0) {\n prefix = \"id\";\n }\n\n return \"\" + (prefix ? prefix + \"-\" : \"\") + Math.random().toString(36).substr(2, 6);\n}\n\nfunction queueFocus(element) {\n queueMicrotask(() => {\n element == null ? void 0 : element.focus();\n });\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * const props = usePortal();\n * Content \n * ```\n */\n\n\nconst usePortal = createHook(_ref => {\n let {\n preserveTabOrder,\n portalElement,\n portalRef,\n portal = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const refProp = useForkRef(ref, props.ref);\n const context = useContext(PortalContext);\n const [portalNode, setPortalNode] = useState(null);\n const beforeOutsideRef = useRef(null);\n const beforeInsideRef = useRef(null);\n const afterInsideRef = useRef(null);\n const afterOutsideRef = useRef(null); // Create the portal node and attach it to the DOM.\n\n useSafeLayoutEffect(() => {\n const element = ref.current;\n\n if (!element || !portal) {\n setPortalNode(null);\n return;\n }\n\n const portalEl = getPortalElement(element, portalElement); // TODO: Warn about portals as the document.body element.\n\n if (!portalEl) {\n setPortalNode(null);\n return;\n }\n\n const isPortalInDocument = portalEl.isConnected;\n\n if (!isPortalInDocument) {\n const rootElement = context || getRootElement(element);\n rootElement.appendChild(portalEl);\n } // If the portal element doesn't have an id already, set one.\n\n\n if (!portalEl.id) {\n // Use the element's id so rendering will\n // produce predictable results.\n portalEl.id = element.id ? element.id + \"-portal\" : getRandomId();\n } // Set the internal portal node state and the portalRef prop.\n\n\n setPortalNode(portalEl);\n setRef(portalRef, portalEl); // If the portal element was already in the document, we don't need to\n // remove it when the element is unmounted, so we just return.\n\n if (isPortalInDocument) return; // Otherwise, we need to remove the portal from the DOM.\n\n return () => {\n portalEl.remove();\n setRef(portalRef, null);\n };\n }, [portal, portalElement, context, portalRef]); // When preserveTabOrder is true, make sure elements inside the portal\n // element are tabbable only when the portal has already been focused,\n // either by tabbing into a focus trap element outside or using the mouse.\n\n useEffect(() => {\n if (!portalNode) return;\n if (!preserveTabOrder) return;\n let raf = 0;\n\n const onFocus = event => {\n if (isFocusEventOutside(event)) {\n const focusing = event.type === \"focusin\";\n if (focusing) return restoreFocusIn(portalNode); // Wait for the next frame to allow tabindex changes after the focus\n // event.\n\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n disableFocusIn(portalNode, true);\n });\n }\n }; // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n\n\n portalNode.addEventListener(\"focusin\", onFocus, true);\n portalNode.addEventListener(\"focusout\", onFocus, true);\n return () => {\n portalNode.removeEventListener(\"focusin\", onFocus, true);\n portalNode.removeEventListener(\"focusout\", onFocus, true);\n };\n }, [portalNode, preserveTabOrder]);\n props = useWrapElement(props, element => {\n element =\n /*#__PURE__*/\n // While the portal node is not in the DOM, we need to pass the\n // current context to the portal context, otherwise it's going to\n // reset to the body element on nested portals.\n jsx(PortalContext.Provider, {\n value: portalNode || context,\n children: element\n });\n if (!portal) return element;\n\n if (!portalNode) {\n // If the element should be rendered within a portal, but the portal\n // node is not yet in the DOM, we'll return an empty div element. We\n // assign the id to the element so we can use it to set the portal id\n // later on. We're using position: fixed here so that the browser\n // doesn't add margin to the element when setting gap on a parent\n // element.\n return /*#__PURE__*/jsx(\"span\", {\n ref: refProp,\n id: props.id,\n style: {\n position: \"fixed\"\n }\n });\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getNextTabbable());\n } else {\n queueFocus(beforeOutsideRef.current);\n }\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getPreviousTabbable());\n } else {\n queueFocus(afterOutsideRef.current);\n }\n }\n })]\n });\n\n if (portalNode) {\n element = /*#__PURE__*/createPortal(element, portalNode);\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(beforeInsideRef.current);\n } else {\n queueFocus(getPreviousTabbable());\n }\n }\n }), preserveTabOrder &&\n /*#__PURE__*/\n // We're using position: fixed here so that the browser doesn't\n // add margin to the element when setting gap on a parent element.\n jsx(\"span\", {\n \"aria-owns\": portalNode == null ? void 0 : portalNode.id,\n style: {\n position: \"fixed\"\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(afterInsideRef.current);\n } else {\n queueFocus(getNextTabbable());\n }\n }\n })]\n });\n return element;\n }, [portalNode, context, portal, props.id, preserveTabOrder]);\n props = { ...props,\n ref: refProp\n };\n return props;\n});\n/**\n * A component that renders an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * Content \n * ```\n */\n\nconst Portal = createComponent(props => {\n const htmlProps = usePortal(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n}\n\nexport { Portal, usePortal };","import { createContext } from 'react';\nconst DialogContext = /*#__PURE__*/createContext(undefined);\nconst DialogHeadingContext = /*#__PURE__*/createContext(undefined);\nconst DialogDescriptionContext = /*#__PURE__*/createContext(undefined);\nexport { DialogContext as D, DialogHeadingContext as a, DialogDescriptionContext as b };","import { useRef, useEffect, useMemo, useCallback, useContext, useState, createContext } from 'react';\nimport { getDocument, contains, getActiveElement, getWindow, isButton, closest } from 'ariakit-utils/dom';\nimport { addGlobalEventListener, isSelfTarget, queueBeforeEvent } from 'ariakit-utils/events';\nimport { getFirstTabbableIn, focusIfNeeded, isFocusable } from 'ariakit-utils/focus';\nimport { useSafeLayoutEffect, useBooleanEvent, useEvent, useForkRef, useForceUpdate, useLiveRef, usePortalRef, useId, useWrapElement } from 'ariakit-utils/hooks';\nimport { noop, chain } from 'ariakit-utils/misc';\nimport { isApple, isMac, isSafari } from 'ariakit-utils/platform';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosureContent } from '../disclosure/disclosure-content.js';\nimport { useFocusTrapRegion } from '../focus-trap/focus-trap-region.js';\nimport { useFocusable } from '../focusable/focusable.js';\nimport { HeadingLevel } from '../heading/heading-level.js';\nimport { usePortal } from '../portal/portal.js';\nimport { jsx } from 'react/jsx-runtime';\nimport { D as DialogContext, a as DialogHeadingContext, b as DialogDescriptionContext } from '../dialog-context-f963dd70.js';\nimport { flushSync } from 'react-dom';\n\nfunction usePreviousMouseDownRef(enabled) {\n const previousMouseDownRef = useRef();\n useEffect(() => {\n if (!enabled) {\n previousMouseDownRef.current = null;\n return;\n }\n\n const onMouseDown = event => {\n previousMouseDownRef.current = event.target;\n };\n\n return addGlobalEventListener(\"mousedown\", onMouseDown, true);\n }, [enabled]);\n return previousMouseDownRef;\n}\n\nfunction DialogBackdrop(_ref) {\n var _state$contentElement;\n\n let {\n state,\n backdrop,\n backdropProps,\n hideOnInteractOutside = true,\n hideOnEscape = true,\n hidden,\n children\n } = _ref;\n const ref = useRef(null);\n state = useMemo(() => ({ ...state,\n // Override the setContentElement method to prevent the backdrop from\n // overwriting the dialog's content element.\n setContentElement: noop\n }), [state]);\n useSafeLayoutEffect(() => {\n const backdrop = ref.current;\n const dialog = state.contentElement;\n if (!backdrop) return;\n if (!dialog) return;\n backdrop.style.zIndex = getComputedStyle(dialog).zIndex;\n }, [state.contentElement]);\n const onClickProp = backdropProps == null ? void 0 : backdropProps.onClick;\n const hideOnInteractOutsideProp = useBooleanEvent(hideOnInteractOutside);\n const previousMouseDownRef = usePreviousMouseDownRef(state.mounted);\n const onClick = useEvent(event => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (previousMouseDownRef.current !== event.currentTarget) return;\n if (!hideOnInteractOutsideProp(event)) return;\n event.stopPropagation();\n state.hide();\n });\n const onKeyDownProp = backdropProps == null ? void 0 : backdropProps.onKeyDown;\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // When hideOnInteractOutside is false and the backdrop is clicked, the\n // backdrop will receive focus (because we set the tabIndex on it). Therefore,\n // the Escape key will not be captured by the Dialog component. So we listen\n // to it here.\n\n const onKeyDown = useEvent(event => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Escape\") return;\n if (!isSelfTarget(event)) return;\n if (!hideOnEscapeProp(event)) return;\n state.hide();\n });\n const props = useDisclosureContent({\n state,\n id: undefined,\n role: \"presentation\",\n tabIndex: -1,\n hidden,\n ...backdropProps,\n ref: useForkRef(backdropProps == null ? void 0 : backdropProps.ref, ref),\n onClick,\n onKeyDown,\n style: {\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...(backdropProps == null ? void 0 : backdropProps.style)\n }\n });\n const Component = typeof backdrop !== \"boolean\" ? backdrop || \"div\" : \"div\";\n return /*#__PURE__*/jsx(Component, { ...props,\n \"data-backdrop\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n children: children\n });\n} // We don't need to walk through certain tags.\n\n\nconst ignoreTags = [\"SCRIPT\", \"STYLE\"];\n\nfunction isValidElement(element, ignoredElements) {\n if (ignoreTags.includes(element.tagName)) return false;\n return !ignoredElements.some(enabledElement => enabledElement && contains(element, enabledElement));\n}\n\nfunction walkTreeOutside(elements, callback) {\n for (let element of elements) {\n const document = getDocument(element); // Loops through the parent elements and then through each of their\n // children.\n\n while ((_element = element) != null && _element.parentElement && element !== document.body) {\n var _element;\n\n for (const child of element.parentElement.children) {\n if (isValidElement(child, elements)) {\n callback(child);\n }\n }\n\n element = element.parentElement;\n }\n }\n}\n\nfunction disableElement$1(element) {\n const previousAriaHidden = element.getAttribute(\"aria-hidden\") || \"\";\n element.setAttribute(\"aria-hidden\", \"true\");\n\n const enableElement = () => {\n if (previousAriaHidden) {\n element.setAttribute(\"aria-hidden\", previousAriaHidden);\n } else {\n element.removeAttribute(\"aria-hidden\");\n }\n };\n\n return enableElement;\n}\n\nfunction disableAccessibilityTreeOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement$1(element));\n });\n\n const restoreAccessibilityTree = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restoreAccessibilityTree;\n}\n\nfunction disableElement(element) {\n if (!(\"style\" in element)) return noop;\n const previousPointerEvents = element.style.pointerEvents;\n element.style.pointerEvents = \"none\";\n\n const enableElement = () => {\n element.style.pointerEvents = previousPointerEvents != null ? previousPointerEvents : \"\";\n };\n\n return enableElement;\n}\n\nfunction disablePointerEventsOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement(element));\n });\n\n const restorePointerEvents = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restorePointerEvents;\n}\n\nfunction prependHiddenDismiss(container, onClick) {\n const document = getDocument(container);\n const button = document.createElement(\"button\");\n button.type = \"button\";\n button.tabIndex = -1;\n button.textContent = \"Dismiss popup\"; // Visually hidden styles\n\n button.style.border = \"0px\";\n button.style.clip = \"rect(0 0 0 0)\";\n button.style.height = \"1px\";\n button.style.margin = \"-1px\";\n button.style.overflow = \"hidden\";\n button.style.padding = \"0px\";\n button.style.position = \"absolute\";\n button.style.whiteSpace = \"nowrap\";\n button.style.width = \"1px\";\n button.addEventListener(\"click\", onClick);\n container.prepend(button);\n\n const removeHiddenDismiss = () => {\n button.removeEventListener(\"click\", onClick);\n button.remove();\n };\n\n return removeHiddenDismiss;\n}\n/**\n * Controls which dialog is the champion that will control global behavior such\n * as body scrolling and accessibility tree outside.\n */\n\n\nfunction useChampionDialog(dialogRef, attribute, enabled) {\n const [updated, retry] = useForceUpdate();\n const isChampionDialog = useCallback(() => {\n if (!enabled) return false;\n const dialog = dialogRef.current;\n if (!dialog) return false;\n const {\n body\n } = getDocument(dialog);\n const id = body.getAttribute(attribute);\n return !id || id === dialog.id;\n }, [updated, enabled, attribute]);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!enabled) return;\n const {\n body\n } = getDocument(dialog);\n\n if (!isChampionDialog()) {\n const observer = new MutationObserver(() => flushSync(retry));\n observer.observe(body, {\n attributeFilter: [attribute]\n });\n return () => observer.disconnect();\n }\n\n body.setAttribute(attribute, dialog.id);\n return () => {\n body.removeAttribute(attribute);\n };\n }, [updated, dialogRef, enabled, isChampionDialog, attribute]);\n return isChampionDialog;\n}\n/**\n * When the focused child gets removed from the DOM, we make sure to move focus\n * to the dialog.\n */\n\n\nfunction useFocusOnChildUnmount(dialogRef, state) {\n useEffect(() => {\n if (!state.open) return;\n const dialog = dialogRef.current;\n if (!dialog) return;\n const observer = new MutationObserver(_ref => {\n let [mutation] = _ref;\n if (!mutation) return; // If target is not dialog, then this observer was triggered by a nested\n // dialog, so we just ignore it here and let the nested dialog handle it.\n\n if (mutation.target !== dialog) return;\n const document = getDocument(dialog);\n const activeElement = getActiveElement(dialog); // We can check if the current focused element is the document body.\n\n if (activeElement === document.body) {\n dialog.focus();\n }\n });\n observer.observe(dialog, {\n childList: true,\n subtree: true\n });\n return () => observer.disconnect();\n }, [state.open, dialogRef]);\n}\n\nfunction isInDocument(target) {\n if (target.tagName === \"HTML\") return true;\n return contains(getDocument(target).body, target);\n}\n\nfunction isDisclosure(disclosure, target) {\n if (contains(disclosure, target)) return true;\n const activeId = target.getAttribute(\"aria-activedescendant\");\n\n if (activeId) {\n const activeElement = getDocument(disclosure).getElementById(activeId);\n\n if (activeElement) {\n return contains(disclosure, activeElement);\n }\n }\n\n return false;\n}\n\nfunction isBackdrop$1(dialog, target) {\n if (!dialog) return false;\n if (!target) return false;\n return target.hasAttribute(\"data-backdrop\") && target.getAttribute(\"data-backdrop\") === dialog.id;\n}\n\nfunction dialogContains(target) {\n return dialogRef => {\n const dialog = dialogRef.current;\n if (!dialog) return false;\n if (contains(dialog, target)) return true;\n if (isBackdrop$1(dialog, target)) return true;\n return false;\n };\n}\n\nfunction useEventOutside(_ref) {\n let {\n type,\n listener,\n dialogRef,\n nestedDialogs,\n disclosureRef,\n enabled,\n capture\n } = _ref;\n const callListener = useEvent(listener);\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n useEffect(() => {\n if (!enabled) return;\n\n const onEvent = event => {\n const container = dialogRef.current;\n const disclosure = disclosureRef == null ? void 0 : disclosureRef.current;\n const target = event.target;\n if (!container) return;\n if (!target) return; // When an element is unmounted right after it receives focus, the focus\n // event is triggered after that, when the element isn't part of the\n // current document anymore. We just ignore it.\n\n if (!isInDocument(target)) return; // Event inside dialog\n\n if (contains(container, target)) return; // Event on disclosure\n\n if (disclosure && isDisclosure(disclosure, target)) return; // Event on focus trap\n\n if (target.hasAttribute(\"data-focus-trap\")) return; // Event inside a nested dialog\n\n if (nestedDialogsRef.current.some(dialogContains(target))) return;\n callListener(event);\n };\n\n return addGlobalEventListener(type, onEvent, capture);\n }, [enabled, dialogRef, disclosureRef, callListener, capture]);\n}\n\nfunction shouldHideOnInteractOutside(hideOnInteractOutside, event) {\n if (typeof hideOnInteractOutside === \"function\") {\n return hideOnInteractOutside(event);\n }\n\n return !!hideOnInteractOutside;\n}\n\nfunction useHideOnInteractOutside(dialogRef, nestedDialogs, _ref2) {\n let {\n state,\n modal,\n hideOnInteractOutside,\n enabled = state.open\n } = _ref2;\n const previousMouseDownRef = usePreviousMouseDownRef(enabled);\n const props = {\n disclosureRef: state.disclosureRef,\n enabled,\n dialogRef,\n nestedDialogs,\n capture: true\n };\n useEventOutside({ ...props,\n type: \"mousedown\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (modal && !shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n // If the dialog is modal and the user clicked outside the dialog, but\n // shouldHideOnInteractOutside is false, we don't hide the dialog, but\n // ensure focus is placed on it. Otherwise the focus might end up on an\n // element outside of the dialog or the body element itself.\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n });\n useEventOutside({ ...props,\n type: \"click\",\n listener: event => {\n const previousMouseDown = previousMouseDownRef.current; // If there's no previously mousedown'd element, this probably means that\n // the dialog opened with a mousedown event, and a subsequent click event\n // was dispatched outside of the dialog. See form-select example. We just\n // ignore this.\n\n if (!previousMouseDown) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const dialog = dialogRef.current;\n const draggingFromDialog = dialog && contains(dialog, previousMouseDown); // This prevents the dialog from closing by dragging the cursor (for\n // example, selecting some text inside the dialog and releasing the mouse\n // outside of it). See https://github.com/ariakit/ariakit/issues/1336\n\n if (draggingFromDialog) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"focusin\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n } // Fix for https://github.com/ariakit/ariakit/issues/619\n\n\n if (event.target === getDocument(dialog)) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"contextmenu\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n state.hide();\n }\n });\n}\n\nconst NestedDialogsContext = /*#__PURE__*/createContext({});\n/**\n * Handles nested dialogs.\n */\n\nfunction useNestedDialogs(dialogRef, _ref) {\n let {\n state,\n modal\n } = _ref;\n const context = useContext(NestedDialogsContext);\n const [openModals, setOpenModals] = useState([]);\n const [nestedDialogs, setNestedDialogs] = useState([]);\n const addDialog = useCallback(ref => {\n const removeFromContext = context.addDialog == null ? void 0 : context.addDialog(ref);\n setNestedDialogs(dialogs => [...dialogs, ref]);\n return () => {\n removeFromContext == null ? void 0 : removeFromContext();\n setNestedDialogs(dialogs => dialogs.filter(dialog => dialog !== ref));\n };\n }, [context.addDialog]);\n const showModal = useCallback(ref => {\n const hideModal = context.showModal == null ? void 0 : context.showModal(ref);\n setOpenModals(modals => [...modals, ref]);\n return () => {\n hideModal == null ? void 0 : hideModal();\n setOpenModals(modals => modals.filter(modal => modal !== ref));\n };\n }, [context.showModal]); // If this is a nested dialog, add it to the context.\n\n useSafeLayoutEffect(() => {\n return context.addDialog == null ? void 0 : context.addDialog(dialogRef);\n }, [context.addDialog, dialogRef]);\n useSafeLayoutEffect(() => {\n if (!modal) return;\n if (!state.open) return;\n return context.showModal == null ? void 0 : context.showModal(dialogRef);\n }, [modal, state.open, context.showModal, dialogRef]); // Close all nested dialogs when parent dialog closes.\n\n useSafeLayoutEffect(() => {\n if (context.open === false && state.open) {\n state.hide();\n }\n }, [context.open, state.open, state.hide]); // Provider\n\n const providerValue = useMemo(() => ({\n open: state.open,\n addDialog,\n showModal\n }), [state.open, addDialog, showModal]);\n const wrapElement = useCallback(element => /*#__PURE__*/jsx(NestedDialogsContext.Provider, {\n value: providerValue,\n children: element\n }), [providerValue]);\n return {\n nestedDialogs,\n openModals,\n wrapElement\n };\n} // Based on https://github.com/floating-ui/floating-ui/blob/1201e72e67a80e479122293d46d96c9bbc8f156d/packages/react-dom-interactions/src/FloatingOverlay.tsx\n\n\nfunction assignStyle(element, style) {\n if (!element) return () => {};\n const previousStyle = element.style.cssText;\n Object.assign(element.style, style);\n return () => {\n element.style.cssText = previousStyle;\n };\n}\n\nfunction setCSSProperty(element, property, value) {\n if (!element) return () => {};\n const previousValue = element.style.getPropertyValue(property);\n element.style.setProperty(property, value);\n return () => {\n if (previousValue) {\n element.style.setProperty(property, previousValue);\n } else {\n element.style.removeProperty(property);\n }\n };\n}\n\nfunction getPaddingProperty(documentElement) {\n // RTL scrollbar\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\n\nfunction usePreventBodyScroll(dialogRef, enabled) {\n const isChampionDialog = useChampionDialog(dialogRef, \"data-dialog-body-scroll\", enabled);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!isChampionDialog()) return;\n const doc = getDocument(dialog);\n const win = getWindow(dialog);\n const {\n documentElement,\n body\n } = doc;\n const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n\n const setScrollbarWidthProperty = () => setCSSProperty(documentElement, \"--scrollbar-width\", scrollbarWidth + \"px\");\n\n const paddingProperty = getPaddingProperty(documentElement);\n\n const setStyle = () => assignStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: scrollbarWidth + \"px\"\n }); // Only iOS doesn't respect `overflow: hidden` on document.body\n\n\n const setIOSStyle = () => {\n var _visualViewport$offse, _visualViewport$offse2;\n\n const {\n scrollX,\n scrollY,\n visualViewport\n } = win; // iOS 12 does not support `visuaViewport`.\n\n const offsetLeft = (_visualViewport$offse = visualViewport == null ? void 0 : visualViewport.offsetLeft) != null ? _visualViewport$offse : 0;\n const offsetTop = (_visualViewport$offse2 = visualViewport == null ? void 0 : visualViewport.offsetTop) != null ? _visualViewport$offse2 : 0;\n const restoreStyle = assignStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: \"0\",\n [paddingProperty]: scrollbarWidth + \"px\"\n });\n return () => {\n restoreStyle(); // istanbul ignore next: JSDOM doesn't implement window.scrollTo\n\n if (process.env.NODE_ENV !== \"test\") {\n win.scrollTo(scrollX, scrollY);\n }\n };\n };\n\n const isIOS = isApple() && !isMac();\n return chain(setScrollbarWidthProperty(), isIOS ? setIOSStyle() : setStyle());\n }, [dialogRef, isChampionDialog]);\n}\n\nconst isSafariBrowser = isSafari();\n\nfunction isBackdrop(dialog, element) {\n const id = dialog.id;\n if (!id) return;\n return element.getAttribute(\"data-backdrop\") === id;\n}\n\nfunction isInDialog(element) {\n return dialogRef => dialogRef.current && contains(dialogRef.current, element);\n}\n\nfunction isAlreadyFocusingAnotherElement(dialog, nestedDialogs) {\n const activeElement = getActiveElement();\n if (!activeElement) return false;\n if (contains(dialog, activeElement)) return false;\n if (isBackdrop(dialog, activeElement)) return false;\n if (nestedDialogs != null && nestedDialogs.some(isInDialog(activeElement))) return false;\n if (isFocusable(activeElement)) return true;\n return false;\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialog({ state });\n * Dialog \n * ```\n */\n\n\nconst useDialog = createHook(_ref => {\n let {\n state,\n focusable = true,\n modal = true,\n portal = !!modal,\n backdrop = !!modal,\n backdropProps,\n hideOnEscape = true,\n hideOnInteractOutside = true,\n preventBodyScroll = !!modal,\n autoFocusOnShow = true,\n autoFocusOnHide = true,\n initialFocusRef,\n finalFocusRef,\n ...props\n } = _ref;\n const ref = useRef(null);\n const openRef = useRef(state.open); // domReady can be also the portal node element so it's updated when the\n // portal node changes (like in between re-renders), triggering effects\n // again.\n\n const {\n portalRef,\n portalNode,\n domReady\n } = usePortalRef(portal, props.portalRef); // Sets preserveTabOrder to true only if the dialog is not a modal and is\n // open.\n\n const preserveTabOrder = props.preserveTabOrder && !modal && state.mounted;\n const openStable = state.open && !state.animating; // Usually, we only want to disable the accessibility tree outside if the\n // dialog is a modal. But the Portal component can't preserve the tab order\n // on Safari/VoiceOver. By allowing only the dialog/portal to be accessible,\n // we provide a similar tab order flow. We don't need to disable pointer\n // events because it's just for screen readers.\n\n const shouldDisableAccessibilityTree = modal || portal && preserveTabOrder && isSafari();\n const id = useId(props.id); // Sets disclosure ref. It needs to be a layout effect so we get the focused\n // element right before the dialog is mounted.\n\n useSafeLayoutEffect(() => {\n if (!openStable) return;\n const dialog = ref.current;\n const activeElement = getActiveElement(dialog, true);\n if (!activeElement) return;\n if (activeElement.tagName === \"BODY\") return; // The disclosure element can't be inside the dialog.\n\n if (dialog && contains(dialog, activeElement)) return;\n state.disclosureRef.current = activeElement;\n }, [openStable]);\n const nested = useNestedDialogs(ref, {\n state,\n modal\n });\n const {\n nestedDialogs,\n openModals,\n wrapElement\n } = nested;\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n usePreventBodyScroll(ref, preventBodyScroll && state.mounted); // When a focused child element is removed, focus will be placed on the\n // document's body. This will focus on the dialog instead.\n\n useFocusOnChildUnmount(ref, state);\n useHideOnInteractOutside(ref, nestedDialogs, {\n state,\n modal,\n hideOnInteractOutside,\n enabled: state.open\n }); // Safari does not focus on native buttons on mousedown. The\n // DialogDisclosure component normalizes this behavior using the\n // useFocusable hook, but the disclosure button may use a custom component,\n // and not DialogDisclosure. In this case, we need to make sure the\n // disclosure button gets focused here.\n\n if (isSafariBrowser) {\n useEffect(() => {\n if (!state.mounted) return;\n const disclosure = state.disclosureRef.current;\n if (!disclosure) return;\n if (!isButton(disclosure)) return;\n\n const onMouseDown = () => {\n let receivedFocus = false;\n\n const onFocus = () => {\n receivedFocus = true;\n };\n\n const options = {\n capture: true,\n once: true\n };\n disclosure.addEventListener(\"focusin\", onFocus, options);\n queueBeforeEvent(disclosure, \"mouseup\", () => {\n disclosure.removeEventListener(\"focusin\", onFocus, true);\n if (receivedFocus) return;\n focusIfNeeded(disclosure);\n });\n };\n\n disclosure.addEventListener(\"mousedown\", onMouseDown);\n return () => {\n disclosure.removeEventListener(\"mousedown\", onMouseDown);\n };\n }, [state.mounted, state.disclosureRef]);\n } // Renders a hidden dismiss button at the top of the modal dialog element.\n // So that screen reader users aren't trapped in the dialog when there's no\n // visible dismiss button.\n\n\n useEffect(() => {\n if (!state.mounted) return;\n if (!domReady) return;\n const dialog = ref.current;\n if (!dialog) return; // Usually, we only want to force the presence of a dismiss button if the\n // dialog is a modal. But, on Safari, since we're disabling the\n // accessibility tree outside, we need to ensure the user will be able to\n // close the dialog.\n\n if (shouldDisableAccessibilityTree) {\n // If there's already a DialogDismiss component, it does nothing.\n const existingDismiss = dialog.querySelector(\"[data-dialog-dismiss]\");\n if (existingDismiss) return;\n return prependHiddenDismiss(dialog, state.hide);\n }\n\n return;\n }, [state.mounted, domReady, shouldDisableAccessibilityTree, state.hide]);\n const shouldDisableOutside = useChampionDialog(ref, \"data-dialog-disable-outside\", openStable && !openModals.length && shouldDisableAccessibilityTree); // Disables/enables the element tree around the modal dialog element.\n\n useSafeLayoutEffect(() => {\n // When the dialog is animating, we immediately restore the element tree\n // outside. This means the element tree will be enabled when the focus is\n // moved back to the disclosure element.\n if (!shouldDisableOutside()) return; // If portal is enabled, we get the portalNode instead of the dialog\n // element. This will consider nested dialogs as they will be children of\n // the portal node, but not the dialog. This also accounts for the tiny\n // delay before the dialog element is appended to the portal node, and the\n // portal node is added to the DOM.\n\n const element = portal ? portalNode : ref.current;\n\n if (modal) {\n return chain(disableAccessibilityTreeOutside(element), // When the backdrop is not visible, we also need to disable pointer\n // events outside of the modal dialog.\n !backdrop ? disablePointerEventsOutside(element) : null);\n }\n\n return disableAccessibilityTreeOutside(element);\n }, [shouldDisableOutside, portal, portalNode, modal, backdrop]);\n const prevInitialFocusRef = useRef();\n const mayAutoFocusOnShow = !!autoFocusOnShow;\n const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow); // Auto focus on show.\n\n useEffect(() => {\n var _nestedDialogsRef$cur;\n\n if (!openStable) return;\n if (!mayAutoFocusOnShow) return; // Makes sure to wait for the portalNode to be created before moving\n // focus. This is useful for when the Dialog component is unmounted\n // when hidden.\n\n if (!domReady) return; // If there are open nested dialogs, let them handle the focus.\n\n const hasNestedOpenDialog = (_nestedDialogsRef$cur = nestedDialogsRef.current) == null ? void 0 : _nestedDialogsRef$cur.some(child => child.current && !child.current.hidden);\n if (hasNestedOpenDialog) return; // The dialog element may change for different reasons. For example, when\n // the `modal`, `portal` or `backdrop` props change, the HTML structure\n // will also change, which will affect the dialog element reference.\n // That's why we're listening to `state.contentElement` here instead of\n // getting the `ref.current` value. This ensures this effect will re-run\n // when the dialog element reference changes.\n\n const dialog = state.contentElement;\n if (!(dialog != null && dialog.isConnected)) return;\n const initialFocus = initialFocusRef == null ? void 0 : initialFocusRef.current;\n const element = initialFocus || // We have to fallback to the first focusable element otherwise portaled\n // dialogs with preserveTabOrder set to true will not receive focus\n // properly because the elements aren't tabbable until the dialog\n // receives focus.\n getFirstTabbableIn(dialog, true, portal && preserveTabOrder) || dialog;\n const prevInitialFocus = prevInitialFocusRef.current;\n prevInitialFocusRef.current = initialFocus; // If the initial focus is the same as the previous initial focus and\n // there's already an element with focus inside the dialog, we don't\n // change focus here.\n\n if (initialFocus === prevInitialFocus) {\n const activeElement = getActiveElement(dialog, true);\n if (activeElement && contains(dialog, activeElement)) return;\n }\n\n if (!autoFocusOnShowProp(element)) return;\n element.focus();\n }, [openStable, mayAutoFocusOnShow, domReady, state.contentElement, initialFocusRef, portal, preserveTabOrder, autoFocusOnShowProp]);\n const mayAutoFocusOnHide = !!autoFocusOnHide;\n const autoFocusOnHideProp = useBooleanEvent(autoFocusOnHide); // Auto focus on hide.\n\n useEffect(() => {\n const dialog = ref.current;\n const prevOpen = openRef.current;\n openRef.current = state.open; // We only want to auto focus on hide if the dialog was open before.\n\n if (!prevOpen) return;\n if (!mayAutoFocusOnHide) return;\n if (!dialog) return; // A function so we can use it on the effect setup and cleanup phases.\n\n const focusOnHide = () => {\n const dialogs = nestedDialogsRef.current; // Hide was triggered by a click/focus on a tabbable element outside\n // the dialog or on another dialog. We won't change focus then.\n\n if (isAlreadyFocusingAnotherElement(dialog, dialogs)) return;\n let element = (finalFocusRef == null ? void 0 : finalFocusRef.current) || state.disclosureRef.current;\n\n if (element) {\n if (element.id) {\n const doc = getDocument(element);\n const selector = \"[aria-activedescendant=\\\"\" + element.id + \"\\\"]\";\n const composite = doc.querySelector(selector); // If the element is an item in a composite widget that handles\n // focus with the `aria-activedescendant` attribute, we want to\n // focus on the composite element itself.\n\n if (composite) {\n element = composite;\n }\n } // If the element is not focusable by the time the dialog is hidden,\n // it's probably because it's an element inside another popover or\n // menu that also got hidden when this dialog was shown. We'll try to\n // focus on their disclosure element instead.\n\n\n if (!isFocusable(element)) {\n const parentDialog = closest(element, \"[data-dialog]\");\n\n if (parentDialog && parentDialog.id) {\n const doc = getDocument(parentDialog);\n const selector = \"[aria-controls~=\\\"\" + parentDialog.id + \"\\\"]\";\n const control = doc.querySelector(selector);\n\n if (control) {\n element = control;\n }\n }\n }\n\n if (!autoFocusOnHideProp(element)) return;\n element.focus();\n }\n };\n\n if (!state.open) {\n // If this effect is running while state.open is false, this means\n // that the Dialog component doesn't get unmounted when it's not\n // open, so we can immediatelly move focus.\n return focusOnHide();\n } // Otherwise, we just return the focusOnHide function so it's going to\n // be executed when the Dialog component gets unmounted. This is useful\n // so we can support both mounting and unmounting Dialog components.\n\n\n return focusOnHide;\n }, [mayAutoFocusOnHide, state.open, finalFocusRef, state.disclosureRef, autoFocusOnHideProp]);\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // Hide on Escape.\n\n useEffect(() => {\n if (!domReady) return;\n if (!state.mounted) return;\n\n const onKeyDown = event => {\n const dialog = ref.current;\n if (!dialog) return;\n const target = event.target;\n const disclosure = state.disclosureRef.current;\n if (event.key !== \"Escape\") return;\n if (event.defaultPrevented) return;\n if (!target) return; // This considers valid targets only the disclosure element or\n // descendants of the dialog element that are not descendants of nested\n // dialogs.\n\n const isValidTarget = () => {\n if (contains(dialog, target)) {\n const dialogs = nestedDialogsRef.current; // Since this is a native DOM event, it won't be triggered by\n // keystrokes on nested dialogs inside portals. But we still need to\n // check if the target is inside a nested non-portal dialog.\n\n const inNestedDialog = dialogs.some(isInDialog(target));\n if (inNestedDialog) return false;\n return true;\n }\n\n if (disclosure && contains(disclosure, target)) return true;\n return false;\n };\n\n if (isValidTarget() && hideOnEscapeProp(event)) {\n state.hide();\n }\n }; // We're attatching the listener to the document instead of the dialog\n // element so we can also listen to keystrokes on the disclosure element.\n // We can't do this on a onKeyDown prop on the disclosure element because\n // we don't have access to the hideOnEscape prop there.\n\n\n return addGlobalEventListener(\"keydown\", onKeyDown);\n }, [domReady, state.mounted, state.disclosureRef, hideOnEscapeProp, state.hide]); // Wraps the element with the nested dialog context.\n\n props = useWrapElement(props, wrapElement, [wrapElement]); // Resets the heading levels inside the modal dialog so they start with h1.\n\n props = useWrapElement(props, element => /*#__PURE__*/jsx(HeadingLevel, {\n level: modal ? 1 : undefined,\n children: element\n }), [modal]); // Focus traps.\n\n props = useFocusTrapRegion({ ...props,\n enabled: state.open && modal && !openModals.length\n });\n const hiddenProp = props.hidden; // Wraps the dialog with a backdrop element if the backdrop prop is truthy.\n\n props = useWrapElement(props, element => {\n if (backdrop) {\n return /*#__PURE__*/jsx(DialogBackdrop, {\n state: state,\n backdrop: backdrop,\n backdropProps: backdropProps,\n hideOnInteractOutside: hideOnInteractOutside,\n hideOnEscape: hideOnEscape,\n hidden: hiddenProp,\n children: element\n });\n }\n\n return element;\n }, [state, backdrop, backdropProps, hideOnInteractOutside, hideOnEscape, hiddenProp]);\n const [headingId, setHeadingId] = useState();\n const [descriptionId, setDescriptionId] = useState();\n props = useWrapElement(props, element => /*#__PURE__*/jsx(DialogContext.Provider, {\n value: state,\n children: /*#__PURE__*/jsx(DialogHeadingContext.Provider, {\n value: setHeadingId,\n children: /*#__PURE__*/jsx(DialogDescriptionContext.Provider, {\n value: setDescriptionId,\n children: element\n })\n })\n }), [state]);\n props = {\n id,\n \"data-dialog\": \"\",\n role: \"dialog\",\n tabIndex: focusable ? -1 : undefined,\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n ...props,\n ref: useForkRef(ref, props.ref)\n };\n props = useDisclosureContent({\n state,\n ...props\n });\n props = useFocusable({ ...props,\n focusable\n });\n props = usePortal({\n portal,\n ...props,\n portalRef,\n preserveTabOrder\n });\n return props;\n});\n/**\n * A component that renders a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Open dialog \n * Dialog \n * ```\n */\n\nconst Dialog = createComponent(props => {\n const htmlProps = useDialog(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Dialog.displayName = \"Dialog\";\n}\n\nexport { Dialog, useDialog };","import { useRef, useState } from 'react';\nimport { useSafeLayoutEffect, useEvent, useBooleanEvent, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useButton } from '../button/button.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosure({ state });\n * Disclosure \n * Content \n * ```\n */\n\nconst useDisclosure = createHook(_ref => {\n var _state$contentElement;\n\n let {\n state,\n toggleOnClick = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const [expanded, setExpanded] = useState(false); // Assigns the disclosureRef whenever it's undefined or disconnected from\n // the DOM. If this disclosure element is the disclosureRef, this element\n // will get the `aria-expanded` attribute set to `true` when the disclosure\n // content is open.\n\n useSafeLayoutEffect(() => {\n const currentDisclosure = state.disclosureRef.current;\n\n if (!currentDisclosure || !currentDisclosure.isConnected) {\n state.disclosureRef.current = ref.current;\n }\n\n const isCurrentDisclosure = state.disclosureRef.current === ref.current;\n setExpanded(state.open && isCurrentDisclosure);\n }, [state.disclosureRef, state.open]);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n });\n const onClickProp = props.onClick;\n const toggleOnClickProp = useBooleanEvent(toggleOnClick);\n const isDuplicate = (\"data-disclosure\" in props);\n const onClick = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (!toggleOnClickProp(event)) return;\n state.toggle();\n });\n props = {\n \"data-disclosure\": \"\",\n \"aria-expanded\": expanded,\n \"aria-controls\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n ...props,\n ref: useForkRef(ref, props.ref),\n onMouseDown,\n onClick\n };\n props = useButton(props);\n return props;\n});\n/**\n * A component that renders an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure \n * Content \n * ```\n */\n\nconst Disclosure = createComponent(props => {\n const htmlProps = useDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Disclosure.displayName = \"Disclosure\";\n}\n\nexport { Disclosure, useDisclosure };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosure } from '../disclosure/disclosure.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialogDisclosure({ state });\n * Disclosure \n * Content \n * ```\n */\n\nconst useDialogDisclosure = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n props = useDisclosure({\n state,\n ...props\n });\n return props;\n});\n/**\n * A component that renders a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Disclosure \n * Content \n * ```\n */\n\nconst DialogDisclosure = createComponent(props => {\n const htmlProps = useDialogDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogDisclosure.displayName = \"DialogDisclosure\";\n}\n\nexport { DialogDisclosure, useDialogDisclosure };","import React from 'react'\r\nimport { useStaticQuery, graphql, Link, withPrefix } from 'gatsby'\r\nimport styled from '@xstyled/styled-components'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\n\r\nconst SideNavQuery = graphql`\r\n query SideNavQuery {\r\n allMdx(filter: { fields: { pageType: { eq: \"doc\" }, title: { ne: \"\" } } }) {\r\n edges {\r\n node {\r\n id\r\n fields {\r\n title\r\n pageType\r\n section\r\n order\r\n slug\r\n }\r\n }\r\n }\r\n }\r\n\r\n site {\r\n siteMetadata {\r\n sections\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst createOrFindGroup = (name, groups) => {\r\n const existingGroup = groups.find((group) => group.name === name)\r\n if (existingGroup) return existingGroup\r\n\r\n const group = { name, nodes: [] }\r\n groups.push(group)\r\n return group\r\n}\r\n\r\nconst DEFAULT_ORDER_VALUE = -9999\r\n\r\nconst sortNodes = (a, b) => {\r\n const diff =\r\n a.fields.order !== DEFAULT_ORDER_VALUE &&\r\n b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? a.fields.order - b.fields.order\r\n : a.fields.order !== DEFAULT_ORDER_VALUE\r\n ? -1\r\n : b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? 1\r\n : a.fields.title.localeCompare(b.fields.title)\r\n return diff === 0 ? 0 : diff > 0 ? 1 : -1\r\n}\r\n\r\nconst groupNodes = (nodes) =>\r\n nodes.reduce((groups, node) => {\r\n if (!node.fields.title) return groups\r\n const group = createOrFindGroup(node.fields.section || '', groups)\r\n group.nodes.push(node)\r\n group.nodes.sort(sortNodes)\r\n return groups\r\n }, [])\r\n\r\nconst Nav = styled.nav`\r\n padding: 4 3 5;\r\n`\r\n\r\nconst NavGroup = styled.div`\r\n margin-bottom: 4;\r\n`\r\n\r\nconst NavGroupTitle = styled.h4`\r\n font-size: 14;\r\n font-weight: 500;\r\n color: on-background-light;\r\n text-transform: uppercase;\r\n margin: 0 0 3 0;\r\n`\r\n\r\nconst NavGroupMenu = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n border-left: 1;\r\n border-left-color: layout-border;\r\n`\r\n\r\nconst NavGroupMenuItem = styled.li`\r\n list-style-type: none;\r\n margin: 2 0 0 -2px;\r\n padding: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n\r\n a {\r\n color: on-background-light;\r\n display: block;\r\n transition: fast;\r\n transition-property: color, border-color;\r\n padding: 2px 0 2px 2;\r\n border-left: 3;\r\n border-color: transparent;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &:hover {\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n\r\n &[aria-current='page'] {\r\n font-weight: 600;\r\n border-color: primary;\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nconst sortGroupsWithConfig = (section) => (a, b) => {\r\n const indexA = section.indexOf(a.name)\r\n const indexB = section.indexOf(b.name)\r\n const diff = indexA - indexB\r\n return diff === 0 ? 0 : diff < 0 ? -1 : 1\r\n}\r\n\r\nexport function useSideNavState() {\r\n const data = useStaticQuery(SideNavQuery)\r\n return React.useMemo(() => {\r\n const navGroups = groupNodes(data.allMdx.edges.map((edge) => edge.node))\r\n navGroups.sort(sortGroupsWithConfig(data.site.siteMetadata.sections))\r\n return { navGroups }\r\n }, [data])\r\n}\r\n\r\nexport function useSideNavPrevNext({ navGroups }) {\r\n const { pathname } = useLocation()\r\n const nodes = navGroups.flatMap((group) => group.nodes)\r\n const nodeIndex = nodes.findIndex(\r\n (node) => withPrefix(node.fields.slug) === pathname,\r\n )\r\n return {\r\n prev: nodeIndex > -1 ? nodes[nodeIndex - 1] : null,\r\n next: nodeIndex > -1 ? nodes[nodeIndex + 1] : null,\r\n }\r\n}\r\n\r\nexport function SideNav({ navGroups }) {\r\n return (\r\n \r\n {navGroups.map((navGroup, index) => (\r\n \r\n {navGroup.name} \r\n \r\n {navGroup.nodes.map((page) => (\r\n \r\n {page.fields.title}\r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\nimport styled, { th } from '@xstyled/styled-components'\r\n\r\nconst TOP_OFFSET = 100\r\n\r\nfunction getHeaderAnchors() {\r\n return Array.prototype.filter.call(\r\n document.getElementsByClassName('anchor'),\r\n (testElement) =>\r\n testElement.parentNode.nodeName === 'H2' ||\r\n testElement.parentNode.nodeName === 'H3',\r\n )\r\n}\r\n\r\nfunction getHeaderDataFromAnchor(el) {\r\n return {\r\n url: el.getAttribute('href'),\r\n text: el.parentElement?.innerText,\r\n depth: Number(el.parentElement?.nodeName.replace('H', '')),\r\n }\r\n}\r\n\r\nfunction getAnchorHeaderIdentifier(el) {\r\n return el?.parentElement?.id\r\n}\r\n\r\nexport function useTocHighlight(ref) {\r\n const { pathname } = useLocation()\r\n const [lastActiveLink, setLastActiveLink] = React.useState(undefined)\r\n const [headings, setHeadings] = React.useState([])\r\n\r\n React.useEffect(() => {\r\n setHeadings(getHeaderAnchors().map(getHeaderDataFromAnchor))\r\n }, [pathname])\r\n\r\n React.useEffect(() => {\r\n let headersAnchors = []\r\n let links = []\r\n\r\n function setActiveLink() {\r\n function getActiveHeaderAnchor() {\r\n let index = 0\r\n let activeHeaderAnchor = null\r\n\r\n headersAnchors = getHeaderAnchors()\r\n while (index < headersAnchors.length && !activeHeaderAnchor) {\r\n const headerAnchor = headersAnchors[index]\r\n const { top } = headerAnchor.getBoundingClientRect()\r\n\r\n if (top >= 0 && top <= TOP_OFFSET) {\r\n activeHeaderAnchor = headerAnchor\r\n }\r\n\r\n index += 1\r\n }\r\n\r\n return activeHeaderAnchor\r\n }\r\n\r\n const activeHeaderAnchor = getActiveHeaderAnchor()\r\n\r\n if (activeHeaderAnchor) {\r\n let index = 0\r\n let itemHighlighted = false\r\n\r\n links = ref.current ? ref.current.querySelectorAll('a') : []\r\n\r\n while (index < links.length && !itemHighlighted) {\r\n const link = links[index]\r\n const { href } = link\r\n const anchorValue = decodeURIComponent(\r\n href.substring(href.indexOf('#') + 1),\r\n )\r\n\r\n if (getAnchorHeaderIdentifier(activeHeaderAnchor) === anchorValue) {\r\n if (lastActiveLink) {\r\n lastActiveLink.removeAttribute('aria-current')\r\n }\r\n\r\n link.setAttribute('aria-current', 'true')\r\n\r\n setLastActiveLink(link)\r\n itemHighlighted = true\r\n }\r\n\r\n index += 1\r\n }\r\n }\r\n }\r\n\r\n document.addEventListener('scroll', setActiveLink)\r\n document.addEventListener('resize', setActiveLink)\r\n\r\n setActiveLink()\r\n\r\n return () => {\r\n document.removeEventListener('scroll', setActiveLink)\r\n document.removeEventListener('resize', setActiveLink)\r\n }\r\n })\r\n\r\n return headings\r\n}\r\n\r\nconst TocContainer = styled.div`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 5 3 4; // 5 0 4;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n font-size: 15;\r\n\r\n h4 {\r\n margin: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n text-transform: uppercase;\r\n color: on-background-light;\r\n }\r\n\r\n ul {\r\n list-style-type: none;\r\n padding: 0;\r\n\r\n li {\r\n margin: 2 0;\r\n\r\n &[data-depth='3'] {\r\n padding-left: 2;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n display: inline-block;\r\n transition: fast;\r\n color: on-background-light;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &[aria-current] {\r\n font-weight: 500;\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n\r\n &:hover {\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nexport function TableOfContents() {\r\n const ref = React.useRef()\r\n const headings = useTocHighlight(ref)\r\n if (!headings.length) return null\r\n return (\r\n \r\n On this page \r\n \r\n {headings.map((heading, i) =>\r\n heading.url ? (\r\n \r\n {heading.text} \r\n \r\n ) : null,\r\n )}\r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th, useUp } from '@xstyled/styled-components'\r\nimport { useDialogState, Dialog, DialogDisclosure } from 'ariakit/dialog'\r\nimport { Portal } from 'ariakit/portal'\r\nimport { VscChevronUp } from 'react-icons/vsc'\r\nimport { RiPencilLine } from 'react-icons/ri'\r\nimport { ScreenContainer } from '../ScreenContainer'\r\nimport { SideNav, useSideNavState, useSideNavPrevNext } from '../SideNav'\r\nimport { SiblingNav, SiblingNavLink } from '../SiblingNav'\r\nimport { Article } from '../Article'\r\nimport { TableOfContents } from '../TableOfContents'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst SidebarDialog = styled.div`\r\n background-color: background-light-a50;\r\n backdrop-filter: blur(3px);\r\n position: fixed;\r\n top: 50;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 20;\r\n overflow: auto;\r\n transition: base;\r\n opacity: 0;\r\n transition: opacity 250ms ease-in-out, transform 250ms ease-in-out;\r\n transform: translate3d(0, 10vh, 0);\r\n\r\n &[data-enter] {\r\n opacity: 1;\r\n transform: translate3d(0, 0, 0);\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n`\r\n\r\nconst Container = styled.div`\r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: 288px minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: 288px minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst SidebarSticky = styled.aside`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 4 0;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n width: 288px;\r\n\r\n ${down(\r\n 'md',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst MenuButton = styled.button`\r\n appearance: none;\r\n border: 0;\r\n border-radius: 50%;\r\n width: 60;\r\n height: 60;\r\n position: fixed;\r\n right: ${th.size(8)};\r\n bottom: ${th.size(8)};\r\n z-index: 25;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n color: background;\r\n background-color: on-background;\r\n transition: base;\r\n transition-property: color;\r\n\r\n &:focus {\r\n color: background;\r\n }\r\n\r\n > svg {\r\n width: 24;\r\n height: 24;\r\n transition: transform 200ms ease-in-out;\r\n\r\n &:first-child {\r\n transform: translateX(-1px);\r\n }\r\n\r\n &:last-child {\r\n transform: translate(-1px) rotate(180deg);\r\n }\r\n }\r\n\r\n &[aria-expanded='true'] {\r\n > svg:first-child {\r\n transform: translate(-1px, 16px);\r\n }\r\n\r\n > svg:last-child {\r\n transform: translate(-1px, -16px) rotate(180deg);\r\n }\r\n }\r\n`\r\n\r\nfunction MobileSidebar({ children }) {\r\n const dialog = useDialogState({ animated: true })\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nfunction PrevNextLinks(props) {\r\n const { prev, next } = useSideNavPrevNext(props)\r\n if (!prev && !next) return null\r\n return (\r\n \r\n {prev && (\r\n \r\n {prev.fields.title}\r\n \r\n )}\r\n {next && (\r\n \r\n {next.fields.title}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport function DocLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = true;\r\n const upMd = useUp('md')\r\n const sideNav = useSideNavState()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!upMd && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\nimport PostHero from \"../blog/PostHero\";\r\nimport PostTitle from \"../blog/PostTitle\";\r\nimport PostDate from \"../blog/PostDate\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nexport function PostLayout({ children, tableOfContents, ...props }) {\r\n console.log(`PostLayout.js`)\r\n const post = children?.props?.pageContext?.frontmatter || {}\r\n console.log(`post ${JSON.stringify(post)}`)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {post.title}
\r\n {post.date}
\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n)}\r\n`\r\n\r\nexport function PageLayout({ children, tableOfContents, editLink, ...props }) {\r\n console.log(`PageLayout.js`)\r\n return (\r\n \r\n \r\n \r\n {children} \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport styled from '@xstyled/styled-components'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst HomeMain = styled.main`\r\n background-color: background;\r\n flex: 1;\r\n \r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n`\r\n\r\nexport function HomeLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = false;\r\n props.isHome = children.key === '/';\r\n return \r\n {children} \r\n \r\n}\r\n","import React from 'react'\r\nimport { DocLayout } from './layouts/DocLayout'\r\nimport { PostLayout } from './layouts/PostLayout'\r\nimport {PageLayout} from \"./layouts/PageLayout\";\r\nimport {HomeLayout} from \"./layouts/HomeLayout\";\r\n\r\nexport function PageWrapper({\r\n children,\r\n props: {\r\n data: { mdx },\r\n },\r\n}) {\r\n console.log(`PageWrapper.js ${mdx?.fields?.pageType}`)\r\n if (!mdx?.fields?.pageType) return children\r\n switch (mdx.fields.pageType) {\r\n case 'doc':\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n case 'page':\r\n console.log(\"PageWrapper\", children);\r\n if(children.key === '/') {\r\n return {children} \r\n } else {\r\n return {children} \r\n }\r\n case 'post':\r\n return {children} \r\n default:\r\n return children\r\n }\r\n}\r\n","import React from 'react'\r\nimport { RootWrapper } from './src/components/RootWrapper'\r\nimport { PageWrapper } from './src/components/PageWrapper'\r\n\r\nexport const wrapRootElement = ({ element }) => {\r\n return {element} \r\n}\r\n\r\nexport const wrapPageElement = ({ element, props }) => {\r\n return {element} \r\n}\r\n","import styled, { css, up, down } from '@xstyled/styled-components'\r\n\r\nexport const Article = styled.article`\r\n .anchor {\r\n margin-left: calc(-1em - 4px);\r\n > svg {\r\n fill: on-background;\r\n width: 1em;\r\n height: 1em;\r\n display: inline;\r\n vertical-align: -15%;\r\n }\r\n }\r\n\r\n code {\r\n background-color: background-light;\r\n color: on-background-primary;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n mark {\r\n background-color: background-mark;\r\n }\r\n\r\n > p {\r\n margin: 3 0;\r\n font-size: 16;\r\n line-height: 1.6;\r\n // max-width: 52em;\r\n }\r\n\r\n /* Intro */\r\n > h1 + p {\r\n font-size: 18;\r\n font-weight: 300;\r\n color: on-background-light;\r\n margin: 2 0 !important;\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 22;\r\n line-height: 1.2;\r\n `,\r\n )};\r\n\r\n a,\r\n strong {\r\n font-weight: 400;\r\n }\r\n }\r\n\r\n > hr {\r\n margin: 0;\r\n height: 0;\r\n border: 0;\r\n border-top: 1;\r\n border-color: layout-border;\r\n margin: 4 0;\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n > h1 {\r\n font-size: 32;\r\n line-height: 1.1;\r\n font-weight: 600;\r\n margin: 40 0 2;\r\n }\r\n\r\n > h2 {\r\n font-size: 24;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0;\r\n padding-top: 3;\r\n border-top: 1;\r\n border-color: layout-border;\r\n }\r\n\r\n > h1 + h2,\r\n > h2:first-child {\r\n border-top: 0;\r\n margin-top: 0;\r\n padding-top: 0;\r\n }\r\n\r\n > h3 {\r\n font-size: 18;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0 3;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n overflow-wrap: break-word;\r\n word-break: break-word;\r\n `,\r\n )}\r\n }\r\n\r\n > h4 {\r\n font-weight: 500;\r\n font-size: 16;\r\n line-height: 1.2;\r\n margin: 3 0;\r\n }\r\n\r\n > h4 + p {\r\n margin-top: 3;\r\n }\r\n\r\n > ul + p {\r\n margin-top: 2;\r\n }\r\n\r\n .editor {\r\n background-color: editor-background;\r\n color: editor-text;\r\n padding: 3 4;\r\n margin: 4 -3;\r\n overflow: auto;\r\n font-size: 14;\r\n line-height: 1.45;\r\n border-radius: base;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n margin-left: -4;\r\n margin-right: -4;\r\n border-radius: 0;\r\n `,\r\n )}\r\n }\r\n\r\n > code {\r\n background-color: editor-background;\r\n border-radius: base;\r\n color: inherit;\r\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono,\r\n Courier New, monospace;\r\n font-size: 85%;\r\n padding: 1 2;\r\n }\r\n\r\n img {\r\n max-width: 100%;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-top: 4;\r\n font-size: 16;\r\n padding-left: 4;\r\n\r\n p,\r\n p:first-of-type {\r\n font-size: 16;\r\n margin-top: 0;\r\n line-height: 1.2;\r\n }\r\n\r\n li {\r\n margin-top: 2;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-left: 4;\r\n margin-top: 2;\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n }\r\n\r\n > blockquote {\r\n font-size: 16;\r\n background-color: blockquote-background;\r\n border-left: 8;\r\n border-color: blockquote-border;\r\n padding: 3;\r\n margin: 3 -2;\r\n border-radius: blockquote;\r\n\r\n code {\r\n background-color: rgba(255, 255, 255, 0.1);\r\n background-blend-mode: color;\r\n color: on-background;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n p {\r\n margin-top: 3;\r\n\r\n &:first-of-type {\r\n margin-top: 0;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n color: blockquote-link;\r\n text-decoration: underline;\r\n\r\n &:hover {\r\n color: on-background;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n text-decoration: underline;\r\n color: on-background-primary;\r\n\r\n &:hover {\r\n color: on-background-primary-dark;\r\n }\r\n }\r\n`\r\n","/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\n\n/**\n * prism-react-renderer:\n * This file has been modified to remove:\n * - globals and window dependency\n * - worker support\n * - highlightAll and other element dependent methods\n * - _.hooks helpers\n * - UMD/node-specific hacks\n * It has also been run through prettier\n */\nvar Prism = function () {\n // Private helper vars\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0; // The grammar object for plaintext\n\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&').replace(/} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone =\n /** @type {Record} */\n {};\n visited[id] = clone;\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n\n return (\n /** @type {any} */\n clone\n );\n\n case 'Array':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone = [];\n visited[id] = clone;\n\n /** @type {Array} */\n\n /** @type {any} */\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n\n default:\n return o;\n }\n },\n\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function (element) {\n while (element) {\n var m = lang.exec(element.className);\n\n if (m) {\n return m[1].toLowerCase();\n }\n\n element = element.parentElement;\n }\n\n return 'none';\n },\n\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function (element, language) {\n // remove all `language-xxxx` classes\n // (this might leave behind a leading space)\n element.className = element.className.replace(RegExp(lang, 'gi'), ''); // add the new `language-xxxx` class\n // (using `classList` will automatically clean up spaces for us)\n\n element.classList.add('language-' + language);\n },\n\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function (element, className, defaultActivation) {\n var no = 'no-' + className;\n\n while (element) {\n var classList = element.classList;\n\n if (classList.contains(className)) {\n return true;\n }\n\n if (classList.contains(no)) {\n return false;\n }\n\n element = element.parentElement;\n }\n\n return !!defaultActivation;\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function (id, redef) {\n var lang = _.util.clone(_.languages[id]);\n\n for (var key in redef) {\n lang[key] = redef[key];\n }\n\n return lang;\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `