var arrays = {
	  "Grass": [
		[],
		[
		  "BULBASAUR",
		  "IVYSAUR",
		  "VENUSAUR",
		  "ODDISH",
		  "GLOOM",
		  "VILEPLUME",
		  "PARAS",
		  "PARASECT",
		  "BELLSPROUT",
		  "WEEPINBELL",
		  "VICTREEBEL",
		  "EXEGGCUTE",
		  "EXEGGUTOR",
		  "TANGELA"
		],
		[
		  "CHIKORITA",
		  "BAYLEEF",
		  "MEGANIUM",
		  "BELLOSSOM",
		  "HOPPIP",
		  "SKIPLOOM",
		  "JUMPLUFF",
		  "SUNKERN",
		  "SUNFLORA",
		  "CELEBI"
		],
		[
		  "TREECKO",
		  "GROVYLE",
		  "SCEPTILE",
		  "LOTAD",
		  "LOMBRE",
		  "LUDICOLO",
		  "SEEDOT",
		  "NUZLEAF",
		  "SHIFTRY",
		  "SHROOMISH",
		  "BRELOOM",
		  "ROSELIA",
		  "CACNEA",
		  "CACTURNE",
		  "LILEEP",
		  "CRADILY",
		  "TROPIUS"
		],
		[
		  "TURTWIG",
		  "GROTLE",
		  "TORTERRA",
		  "BUDEW",
		  "ROSERADE",
		  "WORMADAM",
		  "CHERUBI",
		  "CHERRIM",
		  "CHERRIM_1",
		  "CARNIVINE",
		  "SNOVER",
		  "ABOMASNOW",
		  "TANGROWTH",
		  "LEAFEON",
		  "ROTOM_5",
		  "SHAYMIN",
		  "SHAYMIN_1"
		],
		[
		  "SNIVY",
		  "SERVINE",
		  "SERPERIOR",
		  "PANSAGE",
		  "SIMISAGE",
		  "SEWADDLE",
		  "SWADLOON",
		  "LEAVANNY",
		  "COTTONEE",
		  "WHIMSICOTT",
		  "PETILIL",
		  "LILLIGANT",
		  "MARACTUS",
		  "DEERLING",
		  "DEERLING_1",
		  "DEERLING_2",
		  "DEERLING_3",
		  "SAWSBUCK",
		  "SAWSBUCK_1",
		  "SAWSBUCK_2",
		  "SAWSBUCK_3",
		  "FOONGUS",
		  "AMOONGUSS",
		  "FERROSEED",
		  "FERROTHORN",
		  "VIRIZION",
		  "BLACKDOOR"
		],
		[
		  "CHESPIN",
		  "QUILLADIN",
		  "CHESNAUGHT",
		  "SKIDDO",
		  "GOGOAT",
		  "PHANTUMP",
		  "TREVENANT",
		  "PUMPKABOO",
		  "GOURGEIST",
		  "VENUSAUR_1",
		  "SCEPTILE_1",
		  "ABOMASNOW_1"
		],
		[
		  "ROWLET",
		  "DARTRIX",
		  "DECIDUEYE",
		  "FOMANTIS",
		  "LURANTIS",
		  "MORELULL",
		  "SHIINOTIC",
		  "BOUNSWEET",
		  "STEENEE",
		  "TSAREENA",
		  "DHELMISE",
		  "TAPUBULU",
		  "KARTANA",
		  "EXEGGUTOR_1"
		],
		[
		  "GROOKEY",
		  "THWACKEY",
		  "RILLABOOM",
		  "RILLABOOM_1",
		  "GOSSIFLEUR",
		  "ELDEGOSS",
		  "APPLIN",
		  "FLAPPLE",
		  "APPLETUN",
		  "APPLETUN_1",
		  "ZARUDE",
		  "ZARUDE_1",
		  "CALYREX",
		  "VOLTORB_1",
		  "ELECTRODE_1",
		  "LILLIGANT_1",
		  "DECIDUEYE_1",
		  "VENUSAUR_2"
		],
		[
		  "SPRIGATITO",
		  "FLORAGATO",
		  "MEOWSCARADA",
		  "SMOLIV",
		  "DOLLIV",
		  "ARBOLIVA",
		  "BRAMBLIN",
		  "BRAMBLEGHAST",
		  "TOEDSCOOL",
		  "TOEDSCRUEL",
		  "CAPSAKID",
		  "SCOVILLAIN",
		  "SCOVILLAIN_1",
		  "BRUTEBONNET",
		  "WOCHIEN",
		  "IRONLEAVES",
		  "DIPPLIN",
		  "POLTCHAGEIST",
		  "SINISTCHA",
		  "OGERPON",
		  "OGERPON_8",
		  "OGERPON_4",
		  "OGERPON_1",
		  "OGERPON_5",
		  "OGERPON_2",
		  "OGERPON_6",
		  "OGERPON_3",
		  "OGERPON_7",
		  "HYDRAPPLE",
		  "VICTREEBEL_1",
		  "MEGANIUM_1",
		  "CHESNAUGHT_1"
		]
	  ],
	  "Poison": [
		[],
		[
		  "BULBASAUR",
		  "IVYSAUR",
		  "VENUSAUR",
		  "WEEDLE",
		  "KAKUNA",
		  "BEEDRILL",
		  "EKANS",
		  "ARBOK",
		  "NIDORANfE",
		  "NIDORINA",
		  "NIDOQUEEN",
		  "NIDORANmA",
		  "NIDORINO",
		  "NIDOKING",
		  "ZUBAT",
		  "GOLBAT",
		  "ODDISH",
		  "GLOOM",
		  "VILEPLUME",
		  "VENONAT",
		  "VENOMOTH",
		  "BELLSPROUT",
		  "WEEPINBELL",
		  "VICTREEBEL",
		  "TENTACOOL",
		  "TENTACRUEL",
		  "GRIMER",
		  "MUK",
		  "GASTLY",
		  "HAUNTER",
		  "GENGAR",
		  "KOFFING",
		  "WEEZING"
		],
		[
		  "SPINARAK",
		  "ARIADOS",
		  "CROBAT",
		  "QWILFISH"
		],
		[
		  "DUSTOX",
		  "ROSELIA",
		  "GULPIN",
		  "SWALOT",
		  "SEVIPER"
		],
		[
		  "BUDEW",
		  "ROSERADE",
		  "STUNKY",
		  "SKUNTANK",
		  "SKORUPI",
		  "DRAPION",
		  "CROAGUNK",
		  "TOXICROAK"
		],
		[
		  "VENIPEDE",
		  "WHIRLIPEDE",
		  "SCOLIPEDE",
		  "TRUBBISH",
		  "GARBODOR",
		  "FOONGUS",
		  "AMOONGUSS"
		],
		[
		  "SKRELP",
		  "DRAGALGE",
		  "VENUSAUR_1",
		  "BEEDRILL_1",
		  "GENGAR_1"
		],
		[
		  "MAREANIE",
		  "TOXAPEX",
		  "SALANDIT",
		  "SALAZZLE",
		  "NIHILEGO",
		  "POIPOLE",
		  "NAGANADEL",
		  "GRIMER_1",
		  "MUK_1"
		],
		[
		  "TOXEL",
		  "TOXTRICITY",
		  "TOXTRICITY_1",
		  "TOXTRICITY_2",
		  "ETERNATUS",
		  "ETERNATUS_1",
		  "SNEASEL_1",
		  "SNEASLER",
		  "QWILFISH_1",
		  "OVERQWIL",
		  "SLOWBRO_1",
		  "SLOWKING_1",
		  "WEEZING_1",
		  "VENUSAUR_2",
		  "GENGAR_2",
		  "GARBODOR_1"
		],
		[
		  "SHROODLE",
		  "GRAFAIAI",
		  "VAROOM",
		  "REVAVROOM",
		  "GLIMMET",
		  "GLIMMORA",
		  "GLIMMORA_1",
		  "WOOPER_1",
		  "CLODSIRE",
		  "IRONMOTH",
		  "OKIDOGI",
		  "MUNKIDORI",
		  "FEZANDIPITI",
		  "PECHARUNT",
		  "PECHARUNT_1",
		  "VICTREEBEL_1",
		  "SCOLIPEDE_1",
		  "DRAGALGE_1"
		]
	  ],
	  "Fire": [
		[],
		[
		  "CHARMANDER",
		  "CHARMELEON",
		  "CHARIZARD",
		  "VULPIX",
		  "NINETALES",
		  "GROWLITHE",
		  "ARCANINE",
		  "PONYTA",
		  "RAPIDASH",
		  "MAGMAR",
		  "FLAREON",
		  "MOLTRES"
		],
		[
		  "CYNDAQUIL",
		  "QUILAVA",
		  "TYPHLOSION",
		  "SLUGMA",
		  "MAGCARGO",
		  "HOUNDOUR",
		  "HOUNDOOM",
		  "MAGBY",
		  "ENTEI",
		  "HOOH"
		],
		[
		  "TORCHIC",
		  "COMBUSKEN",
		  "BLAZIKEN",
		  "NUMEL",
		  "CAMERUPT",
		  "TORKOAL",
		  "CASTFORM_1"
		],
		[
		  "CHIMCHAR",
		  "MONFERNO",
		  "INFERNAPE",
		  "MAGMORTAR",
		  "ROTOM_1",
		  "HEATRAN"
		],
		[
		  "VICTINI",
		  "TEPIG",
		  "PIGNITE",
		  "EMBOAR",
		  "PANSEAR",
		  "SIMISEAR",
		  "DARUMAKA",
		  "DARMANITAN",
		  "DARMANITAN_1",
		  "LITWICK",
		  "LAMPENT",
		  "CHANDELURE",
		  "HEATMOR",
		  "LARVESTA",
		  "VOLCARONA",
		  "RESHIRAM",
		  "WHITEDOOR"
		],
		[
		  "FENNEKIN",
		  "BRAIXEN",
		  "DELPHOX",
		  "FLETCHINDER",
		  "TALONFLAME",
		  "LITLEO",
		  "PYROAR",
		  "PYROAR_1",
		  "VOLCANION",
		  "CHARIZARD_1",
		  "CHARIZARD_2",
		  "HOUNDOOM_1",
		  "BLAZIKEN_1",
		  "CAMERUPT_1",
		  "GROUDON_1"
		],
		[
		  "LITTEN",
		  "TORRACAT",
		  "INCINEROAR",
		  "ORICORIO",
		  "SALANDIT",
		  "SALAZZLE",
		  "TURTONATOR",
		  "BLACEPHALON",
		  "MAROWAK_1"
		],
		[
		  "SCORBUNNY",
		  "RABOOT",
		  "CINDERACE",
		  "CINDERACE_1",
		  "CARKOL",
		  "COALOSSAL",
		  "COALOSSAL_1",
		  "SIZZLIPEDE",
		  "CENTISKORCH",
		  "CENTISKORCH_1",
		  "DARMANITAN_3",
		  "GROWLITHE_1",
		  "ARCANINE_1",
		  "TYPHLOSION_1",
		  "CHARIZARD_3"
		],
		[
		  "FUECOCO",
		  "CROCALOR",
		  "SKELEDIRGE",
		  "CHARCADET",
		  "ARMAROUGE",
		  "CERULEDGE",
		  "SCOVILLAIN",
		  "SCOVILLAIN_1",
		  "IRONMOTH",
		  "CHIYU",
		  "OGERPON_2",
		  "OGERPON_6",
		  "GOUGINGFIRE",
		  "TAUROS_2",
		  "HEATRAN_1",
		  "EMBOAR_1",
		  "CHANDELURE_1",
		  "DELPHOX_1",
		  "PYROAR_2"
		]
	  ],
	  "Flying": [
		[],
		[
		  "CHARIZARD",
		  "BUTTERFREE",
		  "PIDGEY",
		  "PIDGEOTTO",
		  "PIDGEOT",
		  "SPEAROW",
		  "FEAROW",
		  "ZUBAT",
		  "GOLBAT",
		  "FARFETCHD",
		  "DODUO",
		  "DODRIO",
		  "SCYTHER",
		  "GYARADOS",
		  "AERODACTYL",
		  "ARTICUNO",
		  "ZAPDOS",
		  "MOLTRES",
		  "DRAGONITE"
		],
		[
		  "HOOTHOOT",
		  "NOCTOWL",
		  "LEDYBA",
		  "LEDIAN",
		  "CROBAT",
		  "TOGETIC",
		  "NATU",
		  "XATU",
		  "HOPPIP",
		  "SKIPLOOM",
		  "JUMPLUFF",
		  "YANMA",
		  "MURKROW",
		  "GLIGAR",
		  "DELIBIRD",
		  "MANTINE",
		  "SKARMORY",
		  "LUGIA",
		  "HOOH"
		],
		[
		  "BEAUTIFLY",
		  "TAILLOW",
		  "SWELLOW",
		  "WINGULL",
		  "PELIPPER",
		  "MASQUERAIN",
		  "NINJASK",
		  "SWABLU",
		  "ALTARIA",
		  "TROPIUS",
		  "SALAMENCE",
		  "RAYQUAZA",
		  "LUGIA_1"
		],
		[
		  "STARLY",
		  "STARAVIA",
		  "STARAPTOR",
		  "MOTHIM",
		  "COMBEE",
		  "VESPIQUEN",
		  "DRIFLOON",
		  "DRIFBLIM",
		  "HONCHKROW",
		  "CHATOT",
		  "MANTYKE",
		  "TOGEKISS",
		  "YANMEGA",
		  "GLISCOR",
		  "ROTOM_4",
		  "SHAYMIN_1"
		],
		[
		  "PIDOVE",
		  "TRANQUILL",
		  "UNFEZANT",
		  "UNFEZANT_1",
		  "WOOBAT",
		  "SWOOBAT",
		  "SIGILYPH",
		  "ARCHEN",
		  "ARCHEOPS",
		  "DUCKLETT",
		  "SWANNA",
		  "EMOLGA",
		  "RUFFLET",
		  "BRAVIARY",
		  "VULLABY",
		  "MANDIBUZZ",
		  "TORNADUS",
		  "TORNADUS_1",
		  "THUNDURUS",
		  "THUNDURUS_1",
		  "LANDORUS",
		  "LANDORUS_1",
		  "UFO"
		],
		[
		  "FLETCHLING",
		  "FLETCHINDER",
		  "TALONFLAME",
		  "VIVILLON",
		  "HAWLUCHA",
		  "NOIBAT",
		  "NOIVERN",
		  "YVELTAL",
		  "CHARIZARD_2",
		  "PIDGEOT_1",
		  "PINSIR_1",
		  "AERODACTYL_1",
		  "SALAMENCE_1",
		  "RAYQUAZA_1",
		  "VIVILLON_1",
		  "VIVILLON_2",
		  "VIVILLON_3",
		  "VIVILLON_4",
		  "VIVILLON_5",
		  "VIVILLON_6",
		  "VIVILLON_7",
		  "VIVILLON_8",
		  "VIVILLON_9",
		  "VIVILLON_10",
		  "VIVILLON_11",
		  "VIVILLON_12",
		  "VIVILLON_13",
		  "VIVILLON_14",
		  "VIVILLON_15",
		  "VIVILLON_16",
		  "VIVILLON_17",
		  "VIVILLON_18",
		  "VIVILLON_19"
		],
		[
		  "ROWLET",
		  "DARTRIX",
		  "PIKIPEK",
		  "TRUMBEAK",
		  "TOUCANNON",
		  "ORICORIO",
		  "ORICORIO_1",
		  "ORICORIO_2",
		  "ORICORIO_3",
		  "MINIOR",
		  "CELESTEELA",
		  "MINIOR_7",
		  "MINIOR_8",
		  "MINIOR_9",
		  "MINIOR_10",
		  "MINIOR_11",
		  "MINIOR_12",
		  "MINIOR_13"
		],
		[
		  "ROOKIDEE",
		  "CORVISQUIRE",
		  "CORVIKNIGHT",
		  "CORVIKNIGHT_1",
		  "CRAMORANT",
		  "CRAMORANT_1",
		  "CRAMORANT_2",
		  "ENAMORUS",
		  "ENAMORUS_1",
		  "ARTICUNO_1",
		  "ZAPDOS_1",
		  "MOLTRES_1",
		  "BRAVIARY_1",
		  "CHARIZARD_3",
		  "BUTTERFREE_1"
		],
		[
		  "SQUAWKABILLY",
		  "SQUAWKABILLY_1",
		  "SQUAWKABILLY_2",
		  "SQUAWKABILLY_3",
		  "WATTREL",
		  "KILOWATTREL",
		  "BOMBIRDIER",
		  "FLAMIGO",
		  "IRONJUGULIS",
		  "CLEFABLE_1",
		  "DRAGONITE_1",
		  "SKARMORY_1",
		  "STARAPTOR_1",
		  "HAWLUCHA_1"
		]
	  ],
	  "Dragon": [
		[],
		[
		  "DRATINI",
		  "DRAGONAIR",
		  "DRAGONITE"
		],
		[
		  "KINGDRA"
		],
		[
		  "VIBRAVA",
		  "FLYGON",
		  "ALTARIA",
		  "BAGON",
		  "SHELGON",
		  "SALAMENCE",
		  "LATIAS",
		  "LATIOS",
		  "RAYQUAZA"
		],
		[
		  "GIBLE",
		  "GABITE",
		  "GARCHOMP",
		  "DIALGA",
		  "PALKIA",
		  "GIRATINA",
		  "GIRATINA_1",
		  "DIALGA_2"
		],
		[
		  "AXEW",
		  "FRAXURE",
		  "HAXORUS",
		  "DRUDDIGON",
		  "DEINO",
		  "ZWEILOUS",
		  "HYDREIGON",
		  "RESHIRAM",
		  "ZEKROM",
		  "KYUREM",
		  "KYUREM_1",
		  "KYUREM_2"
		],
		[
		  "DRAGALGE",
		  "TYRUNT",
		  "TYRANTRUM",
		  "GOOMY",
		  "SLIGGOO",
		  "GOODRA",
		  "NOIBAT",
		  "NOIVERN",
		  "ZYGARDE",
		  "CHARIZARD_1",
		  "AMPHAROS_1",
		  "SCEPTILE_1",
		  "ALTARIA_1",
		  "SALAMENCE_1",
		  "LATIAS_1",
		  "LATIOS_1",
		  "RAYQUAZA_1",
		  "GARCHOMP_1"
		],
		[
		  "TURTONATOR",
		  "DRAMPA",
		  "JANGMOO",
		  "HAKAMOO",
		  "KOMMOO",
		  "GUZZLORD",
		  "NAGANADEL",
		  "EXEGGUTOR_1",
		  "NECROZMA_3",
		  "ZYGARDE_1",
		  "ZYGARDE_2"
		],
		[
		  "APPLIN",
		  "FLAPPLE",
		  "APPLETUN",
		  "APPLETUN_1",
		  "DRACOZOLT",
		  "DRACOVISH",
		  "DURALUDON",
		  "DURALUDON_1",
		  "DREEPY",
		  "DRAKLOAK",
		  "DRAGAPULT",
		  "ETERNATUS",
		  "ETERNATUS_1",
		  "REGIDRAGO",
		  "SLIGGOO_1",
		  "GOODRA_1",
		  "DIALGA_1",
		  "PALKIA_1"
		],
		[
		  "CYCLIZAR",
		  "TATSUGIRI",
		  "TATSUGIRI_1",
		  "TATSUGIRI_2",
		  "TATSUGIRI_3",
		  "FRIGIBAX",
		  "ARCTIBAX",
		  "BAXCALIBUR",
		  "BAXCALIBUR_1",
		  "ROARINGMOON",
		  "KORAIDON",
		  "KORAIDON_1",
		  "MIRAIDON",
		  "MIRAIDON_1",
		  "WALKINGWAKE",
		  "DIPPLIN",
		  "ARCHALUDON",
		  "HYDRAPPLE",
		  "GOUGINGFIRE",
		  "RAGINGBOLT",
		  "DRAGONITE_1",
		  "FERALIGATR_1",
		  "GARCHOMP_2",
		  "DRAGALGE_1",
		  "ZYGARDE_5",
		  "DRAMPA_1"
		]
	  ],
	  "Water": [
		[],
		[
		  "SQUIRTLE",
		  "WARTORTLE",
		  "BLASTOISE",
		  "PSYDUCK",
		  "GOLDUCK",
		  "POLIWAG",
		  "POLIWHIRL",
		  "POLIWRATH",
		  "TENTACOOL",
		  "TENTACRUEL",
		  "SLOWPOKE",
		  "SLOWBRO",
		  "SEEL",
		  "DEWGONG",
		  "SHELLDER",
		  "CLOYSTER",
		  "KRABBY",
		  "KINGLER",
		  "HORSEA",
		  "SEADRA",
		  "GOLDEEN",
		  "SEAKING",
		  "STARYU",
		  "STARMIE",
		  "MAGIKARP",
		  "GYARADOS",
		  "LAPRAS",
		  "VAPOREON",
		  "OMANYTE",
		  "OMASTAR",
		  "KABUTO",
		  "KABUTOPS"
		],
		[
		  "TOTODILE",
		  "CROCONAW",
		  "FERALIGATR",
		  "CHINCHOU",
		  "LANTURN",
		  "MARILL",
		  "AZUMARILL",
		  "POLITOED",
		  "WOOPER",
		  "QUAGSIRE",
		  "SLOWKING",
		  "QWILFISH",
		  "CORSOLA",
		  "REMORAID",
		  "OCTILLERY",
		  "MANTINE",
		  "KINGDRA",
		  "SUICUNE"
		],
		[
		  "MUDKIP",
		  "MARSHTOMP",
		  "SWAMPERT",
		  "LOTAD",
		  "LOMBRE",
		  "LUDICOLO",
		  "WINGULL",
		  "PELIPPER",
		  "SURSKIT",
		  "CARVANHA",
		  "SHARPEDO",
		  "WAILMER",
		  "WAILORD",
		  "BARBOACH",
		  "WHISCASH",
		  "CORPHISH",
		  "CRAWDAUNT",
		  "FEEBAS",
		  "MILOTIC",
		  "CASTFORM_2",
		  "SPHEAL",
		  "SEALEO",
		  "WALREIN",
		  "CLAMPERL",
		  "HUNTAIL",
		  "GOREBYSS",
		  "RELICANTH",
		  "LUVDISC",
		  "KYOGRE"
		],
		[
		  "PIPLUP",
		  "PRINPLUP",
		  "EMPOLEON",
		  "BIBAREL",
		  "BUIZEL",
		  "FLOATZEL",
		  "SHELLOS",
		  "SHELLOS_1",
		  "GASTRODON",
		  "GASTRODON_1",
		  "FINNEON",
		  "LUMINEON",
		  "MANTYKE",
		  "ROTOM_2",
		  "PALKIA",
		  "PHIONE",
		  "MANAPHY"
		],
		[
		  "OSHAWOTT",
		  "DEWOTT",
		  "SAMUROTT",
		  "PANPOUR",
		  "SIMIPOUR",
		  "TYMPOLE",
		  "PALPITOAD",
		  "SEISMITOAD",
		  "BASCULIN",
		  "BASCULIN_1",
		  "TIRTOUGA",
		  "CARRACOSTA",
		  "DUCKLETT",
		  "SWANNA",
		  "FRILLISH",
		  "FRILLISH_1",
		  "JELLICENT",
		  "JELLICENT_1",
		  "ALOMOMOLA",
		  "KELDEO",
		  "KELDEO_1"
		],
		[
		  "FROAKIE",
		  "FROGADIER",
		  "GRENINJA",
		  "BINACLE",
		  "BARBARACLE",
		  "SKRELP",
		  "CLAUNCHER",
		  "CLAWITZER",
		  "VOLCANION",
		  "BLASTOISE_1",
		  "SLOWBRO_2",
		  "GYARADOS_1",
		  "SWAMPERT_1",
		  "SHARPEDO_1",
		  "KYOGRE_1"
		],
		[
		  "POPPLIO",
		  "BRIONNE",
		  "PRIMARINA",
		  "WISHIWASHI",
		  "WISHIWASHI_1",
		  "MAREANIE",
		  "TOXAPEX",
		  "DEWPIDER",
		  "ARAQUANID",
		  "WIMPOD",
		  "GOLISOPOD",
		  "PYUKUMUKU",
		  "BRUXISH",
		  "TAPUFINI",
		  "GRENINJA_2"
		],
		[
		  "SOBBLE",
		  "DRIZZILE",
		  "INTELEON",
		  "INTELEON_1",
		  "CHEWTLE",
		  "DREDNAW",
		  "DREDNAW_1",
		  "CRAMORANT",
		  "CRAMORANT_1",
		  "CRAMORANT_2",
		  "ARROKUDA",
		  "BARRASKEWDA",
		  "DRACOVISH",
		  "ARCTOVISH",
		  "URSHIFU_1",
		  "URSHIFU_3",
		  "BASCULIN_2",
		  "BASCULEGION",
		  "BASCULEGION_1",
		  "SAMUROTT_1",
		  "BLASTOISE_2",
		  "KINGLER_1",
		  "LAPRAS_1",
		  "PALKIA_1"
		],
		[
		  "QUAXLY",
		  "QUAXWELL",
		  "QUAQUAVAL",
		  "WIGLETT",
		  "WUGTRIO",
		  "FINIZEN",
		  "PALAFIN",
		  "PALAFIN_1",
		  "VELUZA",
		  "DONDOZO",
		  "TATSUGIRI",
		  "TATSUGIRI_1",
		  "TATSUGIRI_2",
		  "TATSUGIRI_3",
		  "IRONBUNDLE",
		  "WALKINGWAKE",
		  "OGERPON_1",
		  "OGERPON_5",
		  "TAUROS_3",
		  "STARMIE_1",
		  "FERALIGATR_1",
		  "GRENINJA_1"
		]
	  ],
	  "Bug": [
		[],
		[
		  "CATERPIE",
		  "METAPOD",
		  "BUTTERFREE",
		  "WEEDLE",
		  "KAKUNA",
		  "BEEDRILL",
		  "PARAS",
		  "PARASECT",
		  "VENONAT",
		  "VENOMOTH",
		  "SCYTHER",
		  "PINSIR"
		],
		[
		  "LEDYBA",
		  "LEDIAN",
		  "SPINARAK",
		  "ARIADOS",
		  "YANMA",
		  "PINECO",
		  "FORRETRESS",
		  "SCIZOR",
		  "SHUCKLE",
		  "HERACROSS"
		],
		[
		  "WURMPLE",
		  "SILCOON",
		  "BEAUTIFLY",
		  "CASCOON",
		  "DUSTOX",
		  "SURSKIT",
		  "MASQUERAIN",
		  "NINCADA",
		  "NINJASK",
		  "SHEDINJA",
		  "VOLBEAT",
		  "ILLUMISE",
		  "ANORITH",
		  "ARMALDO"
		],
		[
		  "KRICKETOT",
		  "KRICKETUNE",
		  "BURMY",
		  "BURMY_1",
		  "BURMY_2",
		  "WORMADAM",
		  "WORMADAM_1",
		  "WORMADAM_2",
		  "MOTHIM",
		  "COMBEE",
		  "VESPIQUEN",
		  "SKORUPI",
		  "YANMEGA"
		],
		[
		  "SEWADDLE",
		  "SWADLOON",
		  "LEAVANNY",
		  "VENIPEDE",
		  "WHIRLIPEDE",
		  "SCOLIPEDE",
		  "DWEBBLE",
		  "CRUSTLE",
		  "KARRABLAST",
		  "ESCAVALIER",
		  "JOLTIK",
		  "GALVANTULA",
		  "SHELMET",
		  "ACCELGOR",
		  "DURANT",
		  "LARVESTA",
		  "VOLCARONA",
		  "GENESECT"
		],
		[
		  "SCATTERBUG",
		  "SPEWPA",
		  "VIVILLON",
		  "BEEDRILL_1",
		  "PINSIR_1",
		  "SCIZOR_1",
		  "HERACROSS_1",
		  "VIVILLON_1",
		  "VIVILLON_2",
		  "VIVILLON_3",
		  "VIVILLON_4",
		  "VIVILLON_5",
		  "VIVILLON_6",
		  "VIVILLON_7",
		  "VIVILLON_8",
		  "VIVILLON_9",
		  "VIVILLON_10",
		  "VIVILLON_11",
		  "VIVILLON_12",
		  "VIVILLON_13",
		  "VIVILLON_14",
		  "VIVILLON_15",
		  "VIVILLON_16",
		  "VIVILLON_17",
		  "VIVILLON_18",
		  "VIVILLON_19"
		],
		[
		  "GRUBBIN",
		  "CHARJABUG",
		  "VIKAVOLT",
		  "CUTIEFLY",
		  "RIBOMBEE",
		  "DEWPIDER",
		  "ARAQUANID",
		  "WIMPOD",
		  "GOLISOPOD",
		  "BUZZWOLE",
		  "PHEROMOSA"
		],
		[
		  "BLIPBUG",
		  "DOTTLER",
		  "ORBEETLE",
		  "ORBEETLE_1",
		  "SIZZLIPEDE",
		  "CENTISKORCH",
		  "CENTISKORCH_1",
		  "SNOM",
		  "FROSMOTH",
		  "KLEAVOR",
		  "BUTTERFREE_1"
		],
		[
		  "TAROUNTULA",
		  "SPIDOPS",
		  "NYMBLE",
		  "LOKIX",
		  "RELLOR",
		  "RABSCA",
		  "SLITHERWING",
		  "SCOLIPEDE_1",
		  "GOLISOPOD_1"
		]
	  ],
	  "Normal": [
		[],
		[
		  "PIDGEY",
		  "PIDGEOTTO",
		  "PIDGEOT",
		  "RATTATA",
		  "RATICATE",
		  "SPEAROW",
		  "FEAROW",
		  "JIGGLYPUFF",
		  "WIGGLYTUFF",
		  "MEOWTH",
		  "PERSIAN",
		  "FARFETCHD",
		  "DODUO",
		  "DODRIO",
		  "LICKITUNG",
		  "CHANSEY",
		  "KANGASKHAN",
		  "TAUROS",
		  "DITTO",
		  "EEVEE",
		  "PORYGON",
		  "SNORLAX"
		],
		[
		  "SENTRET",
		  "FURRET",
		  "HOOTHOOT",
		  "NOCTOWL",
		  "IGGLYBUFF",
		  "AIPOM",
		  "GIRAFARIG",
		  "DUNSPARCE",
		  "TEDDIURSA",
		  "URSARING",
		  "PORYGON2",
		  "STANTLER",
		  "SMEARGLE",
		  "MILTANK",
		  "BLISSEY"
		],
		[
		  "ZIGZAGOON",
		  "LINOONE",
		  "TAILLOW",
		  "SWELLOW",
		  "SLAKOTH",
		  "VIGOROTH",
		  "SLAKING",
		  "WHISMUR",
		  "LOUDRED",
		  "EXPLOUD",
		  "AZURILL",
		  "SKITTY",
		  "DELCATTY",
		  "SPINDA",
		  "SWABLU",
		  "ZANGOOSE",
		  "CASTFORM",
		  "KECLEON",
		  "KECLEON_1"
		],
		[
		  "STARLY",
		  "STARAVIA",
		  "STARAPTOR",
		  "BIDOOF",
		  "BIBAREL",
		  "AMBIPOM",
		  "BUNEARY",
		  "LOPUNNY",
		  "GLAMEOW",
		  "PURUGLY",
		  "HAPPINY",
		  "CHATOT",
		  "MUNCHLAX",
		  "LICKILICKY",
		  "PORYGONZ",
		  "REGIGIGAS",
		  "ARCEUS"
		],
		[
		  "PATRAT",
		  "WATCHOG",
		  "LILLIPUP",
		  "HERDIER",
		  "STOUTLAND",
		  "PIDOVE",
		  "TRANQUILL",
		  "UNFEZANT",
		  "UNFEZANT_1",
		  "AUDINO",
		  "MINCCINO",
		  "CINCCINO",
		  "DEERLING",
		  "DEERLING_1",
		  "DEERLING_2",
		  "DEERLING_3",
		  "SAWSBUCK",
		  "SAWSBUCK_1",
		  "SAWSBUCK_2",
		  "SAWSBUCK_3",
		  "BOUFFALANT",
		  "RUFFLET",
		  "BRAVIARY",
		  "MELOETTA",
		  "MELOETTA_1",
		  "MONICA",
		  "HUMANOID",
		  "F00",
		  "F00_1"
		],
		[
		  "BUNNELBY",
		  "DIGGERSBY",
		  "FLETCHLING",
		  "LITLEO",
		  "PYROAR",
		  "PYROAR_1",
		  "FURFROU",
		  "HELIOPTILE",
		  "HELIOLISK",
		  "PIDGEOT_1",
		  "KANGASKHAN_1",
		  "LOPUNNY_1",
		  "AUDINO_1",
		  "FURFROU_1",
		  "FURFROU_2",
		  "FURFROU_3",
		  "FURFROU_4",
		  "FURFROU_5",
		  "FURFROU_6",
		  "FURFROU_7",
		  "FURFROU_8",
		  "FURFROU_9"
		],
		[
		  "PIKIPEK",
		  "TRUMBEAK",
		  "TOUCANNON",
		  "YUNGOOS",
		  "GUMSHOOS",
		  "STUFFUL",
		  "BEWEAR",
		  "ORANGURU",
		  "TYPENULL",
		  "SILVALLY",
		  "KOMALA",
		  "DRAMPA",
		  "RATTATA_1",
		  "RATICATE_1"
		],
		[
		  "SKWOVET",
		  "GREEDENT",
		  "WOOLOO",
		  "DUBWOOL",
		  "ZIGZAGOON_1",
		  "LINOONE_1",
		  "OBSTAGOON",
		  "INDEEDEE",
		  "INDEEDEE_1",
		  "WYRDEER",
		  "URSALUNA",
		  "ZORUA_1",
		  "ZOROARK_1",
		  "MEOWTH_3",
		  "EEVEE_1",
		  "SNORLAX_1"
		],
		[
		  "LECHONK",
		  "OINKOLOGNE",
		  "OINKOLOGNE_1",
		  "TANDEMAUS",
		  "MAUSHOLD",
		  "MAUSHOLD_1",
		  "SMOLIV",
		  "DOLLIV",
		  "ARBOLIVA",
		  "SQUAWKABILLY",
		  "SQUAWKABILLY_1",
		  "SQUAWKABILLY_2",
		  "SQUAWKABILLY_3",
		  "SHROODLE",
		  "GRAFAIAI",
		  "CYCLIZAR",
		  "FARIGIRAF",
		  "DUDUNSPARCE",
		  "DUDUNSPARCE_1",
		  "TERAPAGOS",
		  "TERAPAGOS_1",
		  "TERAPAGOS_2",
		  "URSALUNA_1",
		  "PYROAR_2",
		  "DRAMPA_1"
		]
	  ],
	  "Dark": [
		[],
		[
		  "MISSINGNO",
		  "MISSINGNO_1",
		  "MISSINGNO_2",
		  "MISSINGNO_3",
		  "MISSINGNO_4",
		  "SUBSTITUTE"
		],
		[
		  "UMBREON",
		  "MURKROW",
		  "SNEASEL",
		  "HOUNDOUR",
		  "HOUNDOOM",
		  "TYRANITAR"
		],
		[
		  "POOCHYENA",
		  "MIGHTYENA",
		  "NUZLEAF",
		  "SHIFTRY",
		  "SABLEYE",
		  "CARVANHA",
		  "SHARPEDO",
		  "CACTURNE",
		  "CRAWDAUNT",
		  "ABSOL"
		],
		[
		  "HONCHKROW",
		  "STUNKY",
		  "SKUNTANK",
		  "SPIRITOMB",
		  "DRAPION",
		  "WEAVILE",
		  "DARKRAI"
		],
		[
		  "PURRLOIN",
		  "LIEPARD",
		  "SANDILE",
		  "KROKOROK",
		  "KROOKODILE",
		  "SCRAGGY",
		  "SCRAFTY",
		  "ZORUA",
		  "ZOROARK",
		  "PAWNIARD",
		  "BISHARP",
		  "VULLABY",
		  "MANDIBUZZ",
		  "DEINO",
		  "ZWEILOUS",
		  "HYDREIGON",
		  "BRYCENMAN",
		  "MONSTER",
		  "MAJIN"
		],
		[
		  "GRENINJA",
		  "PANGORO",
		  "INKAY",
		  "MALAMAR",
		  "YVELTAL",
		  "HOOPA_1",
		  "GYARADOS_1",
		  "HOUNDOOM_1",
		  "TYRANITAR_1",
		  "SABLEYE_1",
		  "SHARPEDO_1",
		  "ABSOL_1"
		],
		[
		  "INCINEROAR",
		  "GUZZLORD",
		  "RATTATA_1",
		  "RATICATE_1",
		  "MEOWTH_1",
		  "PERSIAN_1",
		  "GRIMER_1",
		  "MUK_1",
		  "GRENINJA_2"
		],
		[
		  "NICKIT",
		  "THIEVUL",
		  "IMPIDIMP",
		  "MORGREM",
		  "GRIMMSNARL",
		  "GRIMMSNARL_1",
		  "ZIGZAGOON_1",
		  "LINOONE_1",
		  "OBSTAGOON",
		  "MORPEKO",
		  "MORPEKO_1",
		  "URSHIFU",
		  "URSHIFU_2",
		  "ZARUDE",
		  "ZARUDE_1",
		  "QWILFISH_1",
		  "OVERQWIL",
		  "MOLTRES_1",
		  "SAMUROTT_1"
		],
		[
		  "MEOWSCARADA",
		  "LOKIX",
		  "MASCHIFF",
		  "MABOSSTIFF",
		  "BOMBIRDIER",
		  "KINGAMBIT",
		  "BRUTEBONNET",
		  "IRONJUGULIS",
		  "WOCHIEN",
		  "CHIENPAO",
		  "TINGLU",
		  "CHIYU",
		  "ROARINGMOON",
		  "ABSOL_2",
		  "DARKRAI_2",
		  "SCRAFTY_1",
		  "GRENINJA_1",
		  "MALAMAR_1"
		]
	  ],
	  "Electric": [
		[],
		[
		  "PIKACHU",
		  "RAICHU",
		  "MAGNEMITE",
		  "MAGNETON",
		  "VOLTORB",
		  "ELECTRODE",
		  "ELECTABUZZ",
		  "JOLTEON",
		  "ZAPDOS"
		],
		[
		  "CHINCHOU",
		  "LANTURN",
		  "PICHU",
		  "MAREEP",
		  "FLAAFFY",
		  "AMPHAROS",
		  "ELEKID",
		  "RAIKOU"
		],
		[
		  "ELECTRIKE",
		  "MANECTRIC",
		  "PLUSLE",
		  "MINUN"
		],
		[
		  "SHINX",
		  "LUXIO",
		  "LUXRAY",
		  "PACHIRISU",
		  "MAGNEZONE",
		  "ELECTIVIRE",
		  "ROTOM",
		  "ROTOM_1",
		  "ROTOM_2",
		  "ROTOM_3",
		  "ROTOM_4",
		  "ROTOM_5",
		  "PICHU_1",
		  "PICHU_2"
		],
		[
		  "BLITZLE",
		  "ZEBSTRIKA",
		  "EMOLGA",
		  "JOLTIK",
		  "GALVANTULA",
		  "TYNAMO",
		  "EELEKTRIK",
		  "EELEKTROSS",
		  "STUNFISK",
		  "THUNDURUS",
		  "THUNDURUS_1",
		  "ZEKROM",
		  "UFO",
		  "MT2"
		],
		[
		  "HELIOPTILE",
		  "HELIOLISK",
		  "DEDENNE",
		  "AMPHAROS_1",
		  "MANECTRIC_1",
		  "PIKACHU_2",
		  "PIKACHU_3",
		  "PIKACHU_4",
		  "PIKACHU_5",
		  "PIKACHU_6",
		  "PIKACHU_7"
		],
		[
		  "CHARJABUG",
		  "VIKAVOLT",
		  "ORICORIO_1",
		  "TOGEDEMARU",
		  "TAPUKOKO",
		  "XURKITREE",
		  "ZERAORA",
		  "RAICHU_1",
		  "GEODUDE_1",
		  "GRAVELER_1",
		  "GOLEM_1",
		  "PIKACHU_8",
		  "PIKACHU_9",
		  "PIKACHU_10",
		  "PIKACHU_11",
		  "PIKACHU_12",
		  "PIKACHU_13",
		  "PIKACHU_14"
		],
		[
		  "YAMPER",
		  "BOLTUND",
		  "TOXEL",
		  "TOXTRICITY",
		  "TOXTRICITY_1",
		  "TOXTRICITY_2",
		  "PINCURCHIN",
		  "MORPEKO",
		  "MORPEKO_1",
		  "DRACOZOLT",
		  "ARCTOZOLT",
		  "REGIELEKI",
		  "VOLTORB_1",
		  "ELECTRODE_1",
		  "PIKACHU_70",
		  "PIKACHU_15"
		],
		[
		  "PAWMI",
		  "PAWMO",
		  "PAWMOT",
		  "TADBULB",
		  "BELLIBOLT",
		  "WATTREL",
		  "KILOWATTREL",
		  "SANDYSHOCKS",
		  "IRONHANDS",
		  "IRONTHORNS",
		  "MIRAIDON",
		  "MIRAIDON_1",
		  "RAGINGBOLT",
		  "RAICHU_2",
		  "RAICHU_3",
		  "EELEKTROSS_1",
		  "ZERAORA_1"
		]
	  ],
	  "Psychic": [
		[],
		[
		  "ABRA",
		  "KADABRA",
		  "ALAKAZAM",
		  "SLOWPOKE",
		  "SLOWBRO",
		  "DROWZEE",
		  "HYPNO",
		  "EXEGGCUTE",
		  "EXEGGUTOR",
		  "STARMIE",
		  "MRMIME",
		  "JYNX",
		  "MEWTWO",
		  "MEW"
		],
		[
		  "NATU",
		  "XATU",
		  "ESPEON",
		  "SLOWKING",
		  "WOBBUFFET",
		  "GIRAFARIG",
		  "SMOOCHUM",
		  "LUGIA",
		  "CELEBI",
		  "UNOWN",
		  "UNOWN_1",
		  "UNOWN_2",
		  "UNOWN_3",
		  "UNOWN_4",
		  "UNOWN_5",
		  "UNOWN_6",
		  "UNOWN_7",
		  "UNOWN_8",
		  "UNOWN_9",
		  "UNOWN_10",
		  "UNOWN_11",
		  "UNOWN_12",
		  "UNOWN_13",
		  "UNOWN_14",
		  "UNOWN_15",
		  "UNOWN_16",
		  "UNOWN_17",
		  "UNOWN_18",
		  "UNOWN_19",
		  "UNOWN_20",
		  "UNOWN_21",
		  "UNOWN_22",
		  "UNOWN_23",
		  "UNOWN_24",
		  "UNOWN_25"
		],
		[
		  "RALTS",
		  "KIRLIA",
		  "GARDEVOIR",
		  "MEDITITE",
		  "MEDICHAM",
		  "SPOINK",
		  "GRUMPIG",
		  "LUNATONE",
		  "SOLROCK",
		  "BALTOY",
		  "CLAYDOL",
		  "CHIMECHO",
		  "WYNAUT",
		  "BELDUM",
		  "METANG",
		  "METAGROSS",
		  "LATIAS",
		  "LATIOS",
		  "JIRACHI",
		  "DEOXYS",
		  "DEOXYS_1",
		  "DEOXYS_2",
		  "DEOXYS_3",
		  "LUGIA_1",
		  "UNOWN_26",
		  "UNOWN_27"
		],
		[
		  "CHINGLING",
		  "BRONZOR",
		  "BRONZONG",
		  "MIMEJR",
		  "GALLADE",
		  "UXIE",
		  "MESPRIT",
		  "AZELF",
		  "CRESSELIA"
		],
		[
		  "VICTINI",
		  "MUNNA",
		  "MUSHARNA",
		  "WOOBAT",
		  "SWOOBAT",
		  "DARMANITAN_1",
		  "SIGILYPH",
		  "GOTHITA",
		  "GOTHORITA",
		  "GOTHITELLE",
		  "SOLOSIS",
		  "DUOSION",
		  "REUNICLUS",
		  "ELGYEM",
		  "BEHEEYEM",
		  "MELOETTA",
		  "BRYCENMAN",
		  "UFO"
		],
		[
		  "DELPHOX",
		  "ESPURR",
		  "MEOWSTIC",
		  "MEOWSTIC_1",
		  "INKAY",
		  "MALAMAR",
		  "HOOPA",
		  "HOOPA_1",
		  "ALAKAZAM_1",
		  "SLOWBRO_2",
		  "MEWTWO_1",
		  "MEWTWO_2",
		  "GARDEVOIR_1",
		  "MEDICHAM_1",
		  "METAGROSS_1",
		  "LATIAS_1",
		  "LATIOS_1",
		  "GALLADE_1",
		  "MEWTWO_3"
		],
		[
		  "ORICORIO_2",
		  "ORANGURU",
		  "BRUXISH",
		  "TAPULELE",
		  "COSMOG",
		  "COSMOEM",
		  "SOLGALEO",
		  "LUNALA",
		  "NECROZMA",
		  "NECROZMA_1",
		  "NECROZMA_2",
		  "NECROZMA_3",
		  "RAICHU_1"
		],
		[
		  "DOTTLER",
		  "ORBEETLE",
		  "ORBEETLE_1",
		  "HATENNA",
		  "HATTREM",
		  "HATTERENE",
		  "HATTERENE_1",
		  "MRMIME_1",
		  "MRRIME",
		  "INDEEDEE",
		  "INDEEDEE_1",
		  "CALYREX",
		  "CALYREX_1",
		  "CALYREX_2",
		  "WYRDEER",
		  "PONYTA_1",
		  "RAPIDASH_1",
		  "SLOWPOKE_1",
		  "SLOWBRO_1",
		  "SLOWKING_1",
		  "ARTICUNO_1",
		  "BRAVIARY_1"
		],
		[
		  "ARMAROUGE",
		  "RABSCA",
		  "FLITTLE",
		  "ESPATHRA",
		  "VELUZA",
		  "FARIGIRAF",
		  "SCREAMTAIL",
		  "IRONLEAVES",
		  "MUNKIDORI",
		  "IRONBOULDER",
		  "IRONCROWN",
		  "STARMIE_1",
		  "CHIMECHO_1",
		  "DELPHOX_1",
		  "MEOWSTIC_2",
		  "MALAMAR_1"
		]
	  ],
	  "Ground": [
		[],
		[
		  "SANDSHREW",
		  "SANDSLASH",
		  "NIDOQUEEN",
		  "NIDOKING",
		  "DIGLETT",
		  "DUGTRIO",
		  "GEODUDE",
		  "GRAVELER",
		  "GOLEM",
		  "ONIX",
		  "CUBONE",
		  "MAROWAK",
		  "RHYHORN",
		  "RHYDON"
		],
		[
		  "WOOPER",
		  "QUAGSIRE",
		  "GLIGAR",
		  "STEELIX",
		  "SWINUB",
		  "PILOSWINE",
		  "PHANPY",
		  "DONPHAN",
		  "LARVITAR",
		  "PUPITAR"
		],
		[
		  "MARSHTOMP",
		  "SWAMPERT",
		  "NINCADA",
		  "NUMEL",
		  "CAMERUPT",
		  "TRAPINCH",
		  "VIBRAVA",
		  "FLYGON",
		  "BARBOACH",
		  "WHISCASH",
		  "BALTOY",
		  "CLAYDOL",
		  "GROUDON"
		],
		[
		  "TORTERRA",
		  "WORMADAM_1",
		  "GASTRODON",
		  "GASTRODON_1",
		  "GIBLE",
		  "GABITE",
		  "GARCHOMP",
		  "HIPPOPOTAS",
		  "HIPPOPOTAS_2",
		  "HIPPOWDON",
		  "HIPPOWDON_2",
		  "RHYPERIOR",
		  "GLISCOR",
		  "MAMOSWINE"
		],
		[
		  "DRILBUR",
		  "EXCADRILL",
		  "PALPITOAD",
		  "SEISMITOAD",
		  "SANDILE",
		  "KROKOROK",
		  "KROOKODILE",
		  "STUNFISK",
		  "GOLETT",
		  "GOLURK",
		  "LANDORUS",
		  "LANDORUS_1"
		],
		[
		  "DIGGERSBY",
		  "ZYGARDE",
		  "STEELIX_1",
		  "SWAMPERT_1",
		  "CAMERUPT_1",
		  "GROUDON_1",
		  "GARCHOMP_1"
		],
		[
		  "MUDBRAY",
		  "MUDSDALE",
		  "SANDYGAST",
		  "PALOSSAND",
		  "DIGLETT_1",
		  "DUGTRIO_1",
		  "ZYGARDE_1",
		  "ZYGARDE_2"
		],
		[
		  "SILICOBRA",
		  "SANDACONDA",
		  "SANDACONDA_1",
		  "YAMASK_1",
		  "RUNERIGUS",
		  "URSALUNA",
		  "STUNFISK_1"
		],
		[
		  "TOEDSCOOL",
		  "TOEDSCRUEL",
		  "WOOPER_1",
		  "CLODSIRE",
		  "GREATTUSK",
		  "SANDYSHOCKS",
		  "IRONTREADS",
		  "TINGLU",
		  "URSALUNA_1",
		  "EXCADRILL_1",
		  "GOLURK_1",
		  "ZYGARDE_5"
		]
	  ],
	  "Ice": [
		[],
		[
		  "DEWGONG",
		  "CLOYSTER",
		  "JYNX",
		  "LAPRAS",
		  "ARTICUNO"
		],
		[
		  "SNEASEL",
		  "SWINUB",
		  "PILOSWINE",
		  "DELIBIRD",
		  "SMOOCHUM"
		],
		[
		  "CASTFORM_3",
		  "SNORUNT",
		  "GLALIE",
		  "SPHEAL",
		  "SEALEO",
		  "WALREIN",
		  "REGICE"
		],
		[
		  "SNOVER",
		  "ABOMASNOW",
		  "WEAVILE",
		  "GLACEON",
		  "MAMOSWINE",
		  "FROSLASS",
		  "ROTOM_3"
		],
		[
		  "VANILLITE",
		  "VANILLISH",
		  "VANILLUXE",
		  "CUBCHOO",
		  "BEARTIC",
		  "CRYOGONAL",
		  "KYUREM",
		  "KYUREM_1",
		  "KYUREM_2"
		],
		[
		  "AMAURA",
		  "AURORUS",
		  "BERGMITE",
		  "AVALUGG",
		  "GLALIE_1",
		  "ABOMASNOW_1"
		],
		[
		  "CRABOMINABLE",
		  "SANDSHREW_1",
		  "SANDSLASH_1",
		  "VULPIX_1",
		  "NINETALES_1"
		],
		[
		  "MRMIME_1",
		  "MRRIME",
		  "SNOM",
		  "FROSMOTH",
		  "EISCUE",
		  "EISCUE_1",
		  "ARCTOZOLT",
		  "ARCTOVISH",
		  "GLASTRIER",
		  "CALYREX_1",
		  "DARUMAKA_2",
		  "DARMANITAN_2",
		  "DARMANITAN_3",
		  "AVALUGG_1",
		  "LAPRAS_1"
		],
		[
		  "CETODDLE",
		  "CETITAN",
		  "IRONBUNDLE",
		  "FRIGIBAX",
		  "ARCTIBAX",
		  "BAXCALIBUR",
		  "BAXCALIBUR_1",
		  "CHIENPAO",
		  "FROSLASS_1",
		  "CRABOMINABLE_1"
		]
	  ],
	  "Steel": [
		[],
		[
		  "MAGNEMITE",
		  "MAGNETON"
		],
		[
		  "FORRETRESS",
		  "STEELIX",
		  "SCIZOR",
		  "SKARMORY"
		],
		[
		  "MAWILE",
		  "ARON",
		  "LAIRON",
		  "AGGRON",
		  "BELDUM",
		  "METANG",
		  "METAGROSS",
		  "REGISTEEL",
		  "JIRACHI"
		],
		[
		  "EMPOLEON",
		  "SHIELDON",
		  "BASTIODON",
		  "WORMADAM_2",
		  "BRONZOR",
		  "BRONZONG",
		  "LUCARIO",
		  "MAGNEZONE",
		  "PROBOPASS",
		  "DIALGA",
		  "HEATRAN",
		  "DIALGA_2"
		],
		[
		  "EXCADRILL",
		  "ESCAVALIER",
		  "FERROSEED",
		  "FERROTHORN",
		  "KLINK",
		  "KLANG",
		  "KLINKLANG",
		  "PAWNIARD",
		  "BISHARP",
		  "DURANT",
		  "COBALION",
		  "GENESECT",
		  "MT",
		  "MT2",
		  "TRANSPORT",
		  "F00",
		  "F00_1"
		],
		[
		  "HONEDGE",
		  "DOUBLADE",
		  "AEGISLASH",
		  "AEGISLASH_1",
		  "KLEFKI",
		  "STEELIX_1",
		  "SCIZOR_1",
		  "MAWILE_1",
		  "AGGRON_1",
		  "METAGROSS_1",
		  "LUCARIO_1"
		],
		[
		  "TOGEDEMARU",
		  "SOLGALEO",
		  "CELESTEELA",
		  "KARTANA",
		  "NECROZMA_1",
		  "MAGEARNA",
		  "MAGEARNA_1",
		  "STAKATAKA",
		  "MELTAN",
		  "MELMETAL",
		  "SANDSHREW_1",
		  "SANDSLASH_1",
		  "DIGLETT_1",
		  "DUGTRIO_1"
		],
		[
		  "CORVIKNIGHT",
		  "CORVIKNIGHT_1",
		  "MEOWTH_2",
		  "PERRSERKER",
		  "CUFANT",
		  "COPPERAJAH",
		  "COPPERAJAH_1",
		  "DURALUDON",
		  "DURALUDON_1",
		  "ZACIAN_1",
		  "ZACIAN_2",
		  "ZAMAZENTA_1",
		  "ZAMAZENTA_2",
		  "STUNFISK_1",
		  "SLIGGOO_1",
		  "GOODRA_1",
		  "MELMETAL_1",
		  "DIALGA_1"
		],
		[
		  "TINKATINK",
		  "TINKATUFF",
		  "TINKATON",
		  "VAROOM",
		  "REVAVROOM",
		  "ORTHWORM",
		  "KINGAMBIT",
		  "IRONTREADS",
		  "GHOLDENGO",
		  "ARCHALUDON",
		  "IRONCROWN",
		  "SKARMORY_1",
		  "CHIMECHO_1",
		  "LUCARIO_2",
		  "HEATRAN_1",
		  "EXCADRILL_1",
		  "GOLISOPOD_1",
		  "MAGEARNA_2"
		]
	  ],
	  "Fairy": [
		[],
		[
		  "CLEFAIRY",
		  "CLEFABLE",
		  "JIGGLYPUFF",
		  "WIGGLYTUFF",
		  "MRMIME"
		],
		[
		  "CLEFFA",
		  "IGGLYBUFF",
		  "TOGEPI",
		  "TOGETIC",
		  "MARILL",
		  "AZUMARILL",
		  "SNUBBULL",
		  "GRANBULL"
		],
		[
		  "RALTS",
		  "KIRLIA",
		  "GARDEVOIR",
		  "AZURILL",
		  "MAWILE"
		],
		[
		  "MIMEJR",
		  "TOGEKISS"
		],
		[
		  "COTTONEE",
		  "WHIMSICOTT"
		],
		[
		  "FLABEBE",
		  "FLABEBE_1",
		  "FLABEBE_2",
		  "FLABEBE_3",
		  "FLABEBE_4",
		  "FLOETTE",
		  "FLOETTE_1",
		  "FLOETTE_2",
		  "FLOETTE_3",
		  "FLOETTE_4",
		  "FLOETTE_5",
		  "FLORGES",
		  "FLORGES_1",
		  "FLORGES_2",
		  "FLORGES_3",
		  "FLORGES_4",
		  "SPRITZEE",
		  "AROMATISSE",
		  "SWIRLIX",
		  "SLURPUFF",
		  "SYLVEON",
		  "DEDENNE",
		  "CARBINK",
		  "KLEFKI",
		  "XERNEAS",
		  "XERNEAS_1",
		  "DIANCIE",
		  "DIANCIE_1",
		  "GARDEVOIR_1",
		  "MAWILE_1",
		  "ALTARIA_1",
		  "AUDINO_1"
		],
		[
		  "PRIMARINA",
		  "CUTIEFLY",
		  "RIBOMBEE",
		  "MORELULL",
		  "SHIINOTIC",
		  "COMFEY",
		  "MIMIKYU",
		  "MIMIKYU_1",
		  "TAPUKOKO",
		  "TAPULELE",
		  "TAPUBULU",
		  "TAPUFINI",
		  "MAGEARNA",
		  "MAGEARNA_1",
		  "NINETALES_1"
		],
		[
		  "HATTERENE",
		  "HATTERENE_1",
		  "IMPIDIMP",
		  "MORGREM",
		  "GRIMMSNARL",
		  "GRIMMSNARL_1",
		  "MILCERY",
		  "ALCREMIE",
		  "ALCREMIE_70",
		  "ZACIAN",
		  "ZACIAN_1",
		  "ZACIAN_2",
		  "ENAMORUS",
		  "ENAMORUS_1",
		  "RAPIDASH_1",
		  "WEEZING_1"
		],
		[
		  "FIDOUGH",
		  "DACHSBUN",
		  "TINKATINK",
		  "TINKATUFF",
		  "TINKATON",
		  "SCREAMTAIL",
		  "FLUTTERMANE",
		  "IRONVALIANT",
		  "FEZANDIPITI",
		  "CLEFABLE_1",
		  "MEGANIUM_1",
		  "FLOETTE_6",
		  "MAGEARNA_2"
		]
	  ],
	  "Fighting": [
		[],
		[
		  "MANKEY",
		  "PRIMEAPE",
		  "POLIWRATH",
		  "MACHOP",
		  "MACHOKE",
		  "MACHAMP",
		  "HITMONLEE",
		  "HITMONCHAN"
		],
		[
		  "HERACROSS",
		  "TYROGUE",
		  "HITMONTOP"
		],
		[
		  "COMBUSKEN",
		  "BLAZIKEN",
		  "BRELOOM",
		  "MAKUHITA",
		  "HARIYAMA",
		  "MEDITITE",
		  "MEDICHAM"
		],
		[
		  "MONFERNO",
		  "INFERNAPE",
		  "RIOLU",
		  "LUCARIO",
		  "CROAGUNK",
		  "TOXICROAK",
		  "GALLADE"
		],
		[
		  "PIGNITE",
		  "EMBOAR",
		  "TIMBURR",
		  "GURDURR",
		  "CONKELDURR",
		  "THROH",
		  "SAWK",
		  "SCRAGGY",
		  "SCRAFTY",
		  "MIENFOO",
		  "MIENSHAO",
		  "COBALION",
		  "TERRAKION",
		  "VIRIZION",
		  "KELDEO",
		  "KELDEO_1",
		  "MELOETTA_1",
		  "BLACKBELT"
		],
		[
		  "CHESNAUGHT",
		  "PANCHAM",
		  "PANGORO",
		  "HAWLUCHA",
		  "MEWTWO_1",
		  "HERACROSS_1",
		  "BLAZIKEN_1",
		  "MEDICHAM_1",
		  "LOPUNNY_1",
		  "LUCARIO_1",
		  "GALLADE_1"
		],
		[
		  "CRABRAWLER",
		  "CRABOMINABLE",
		  "STUFFUL",
		  "BEWEAR",
		  "PASSIMIAN",
		  "HAKAMOO",
		  "KOMMOO",
		  "BUZZWOLE",
		  "PHEROMOSA",
		  "MARSHADOW",
		  "MARSHADOW_1"
		],
		[
		  "CLOBBOPUS",
		  "GRAPPLOCT",
		  "FARFETCHD_1",
		  "SIRFETCHD",
		  "FALINKS",
		  "ZAMAZENTA",
		  "ZAMAZENTA_1",
		  "ZAMAZENTA_2",
		  "KUBFU",
		  "URSHIFU",
		  "URSHIFU_1",
		  "URSHIFU_3",
		  "URSHIFU_2",
		  "SNEASEL_1",
		  "SNEASLER",
		  "ZAPDOS_1",
		  "LILLIGANT_1",
		  "DECIDUEYE_1",
		  "MACHAMP_1"
		],
		[
		  "QUAQUAVAL",
		  "PAWMO",
		  "PAWMOT",
		  "FLAMIGO",
		  "ANNIHILAPE",
		  "GREATTUSK",
		  "SLITHERWING",
		  "IRONHANDS",
		  "IRONVALIANT",
		  "KORAIDON",
		  "KORAIDON_1",
		  "OKIDOGI",
		  "TAUROS_1",
		  "TAUROS_2",
		  "TAUROS_3",
		  "STARAPTOR_1",
		  "LUCARIO_2",
		  "EMBOAR_1",
		  "SCRAFTY_1",
		  "CHESNAUGHT_1",
		  "BARBARACLE_1",
		  "HAWLUCHA_1",
		  "CRABOMINABLE_1",
		  "FALINKS_1"
		]
	  ],
	  "Rock": [
		[],
		[
		  "GEODUDE",
		  "GRAVELER",
		  "GOLEM",
		  "ONIX",
		  "RHYHORN",
		  "RHYDON",
		  "OMANYTE",
		  "OMASTAR",
		  "KABUTO",
		  "KABUTOPS",
		  "AERODACTYL"
		],
		[
		  "SUDOWOODO",
		  "SHUCKLE",
		  "MAGCARGO",
		  "CORSOLA",
		  "LARVITAR",
		  "PUPITAR",
		  "TYRANITAR"
		],
		[
		  "NOSEPASS",
		  "ARON",
		  "LAIRON",
		  "AGGRON",
		  "LUNATONE",
		  "SOLROCK",
		  "LILEEP",
		  "CRADILY",
		  "ANORITH",
		  "ARMALDO",
		  "RELICANTH",
		  "REGIROCK"
		],
		[
		  "CRANIDOS",
		  "RAMPARDOS",
		  "SHIELDON",
		  "BASTIODON",
		  "BONSLY",
		  "RHYPERIOR",
		  "PROBOPASS"
		],
		[
		  "ROGGENROLA",
		  "BOLDORE",
		  "GIGALITH",
		  "DWEBBLE",
		  "CRUSTLE",
		  "TIRTOUGA",
		  "CARRACOSTA",
		  "ARCHEN",
		  "ARCHEOPS",
		  "TERRAKION"
		],
		[
		  "BINACLE",
		  "BARBARACLE",
		  "TYRUNT",
		  "TYRANTRUM",
		  "AMAURA",
		  "AURORUS",
		  "CARBINK",
		  "DIANCIE",
		  "DIANCIE_1",
		  "AERODACTYL_1",
		  "TYRANITAR_1"
		],
		[
		  "ROCKRUFF",
		  "LYCANROC",
		  "LYCANROC_1",
		  "LYCANROC_2",
		  "MINIOR",
		  "NIHILEGO",
		  "STAKATAKA",
		  "GEODUDE_1",
		  "GRAVELER_1",
		  "GOLEM_1",
		  "MINIOR_7",
		  "MINIOR_8",
		  "MINIOR_9",
		  "MINIOR_10",
		  "MINIOR_11",
		  "MINIOR_12",
		  "MINIOR_13"
		],
		[
		  "DREDNAW",
		  "DREDNAW_1",
		  "ROLYCOLY",
		  "CARKOL",
		  "COALOSSAL",
		  "COALOSSAL_1",
		  "STONJOURNER",
		  "KLEAVOR",
		  "GROWLITHE_1",
		  "ARCANINE_1",
		  "AVALUGG_1"
		],
		[
		  "NACLI",
		  "NACLSTACK",
		  "GARGANACL",
		  "KLAWF",
		  "GLIMMET",
		  "GLIMMORA",
		  "IRONTHORNS",
		  "OGERPON_3",
		  "OGERPON_7",
		  "IRONBOULDER",
		  "BARBARACLE_1",
		  "GLIMMORA_1"
		]
	  ],
	  "Ghost": [
		[],
		[
		  "GASTLY",
		  "HAUNTER",
		  "GENGAR"
		],
		[
		  "MISDREAVUS"
		],
		[
		  "SHEDINJA",
		  "SABLEYE",
		  "SHUPPET",
		  "BANETTE",
		  "DUSKULL",
		  "DUSCLOPS"
		],
		[
		  "DRIFLOON",
		  "DRIFBLIM",
		  "MISMAGIUS",
		  "SPIRITOMB",
		  "DUSKNOIR",
		  "FROSLASS",
		  "ROTOM",
		  "GIRATINA",
		  "GIRATINA_1"
		],
		[
		  "YAMASK",
		  "COFAGRIGUS",
		  "FRILLISH",
		  "FRILLISH_1",
		  "JELLICENT",
		  "JELLICENT_1",
		  "LITWICK",
		  "LAMPENT",
		  "CHANDELURE",
		  "GOLETT",
		  "GOLURK",
		  "MAJIN"
		],
		[
		  "HONEDGE",
		  "DOUBLADE",
		  "AEGISLASH",
		  "AEGISLASH_1",
		  "PHANTUMP",
		  "TREVENANT",
		  "PUMPKABOO",
		  "GOURGEIST",
		  "HOOPA",
		  "GENGAR_1",
		  "SABLEYE_1",
		  "BANETTE_1"
		],
		[
		  "DECIDUEYE",
		  "ORICORIO_3",
		  "SANDYGAST",
		  "PALOSSAND",
		  "MIMIKYU",
		  "MIMIKYU_1",
		  "DHELMISE",
		  "LUNALA",
		  "NECROZMA_2",
		  "MARSHADOW",
		  "MARSHADOW_1",
		  "BLACEPHALON",
		  "MAROWAK_1"
		],
		[
		  "SINISTEA",
		  "POLTEAGEIST",
		  "CORSOLA_1",
		  "CURSOLA",
		  "YAMASK_1",
		  "RUNERIGUS",
		  "DREEPY",
		  "DRAKLOAK",
		  "DRAGAPULT",
		  "SPECTRIER",
		  "CALYREX_2",
		  "BASCULEGION",
		  "BASCULEGION_1",
		  "TYPHLOSION_1",
		  "ZORUA_1",
		  "ZOROARK_1",
		  "GENGAR_2"
		],
		[
		  "SKELEDIRGE",
		  "CERULEDGE",
		  "BRAMBLIN",
		  "BRAMBLEGHAST",
		  "GREAVARD",
		  "HOUNDSTONE",
		  "ANNIHILAPE",
		  "FLUTTERMANE",
		  "GIMMIGHOUL",
		  "GIMMIGHOUL_1",
		  "GHOLDENGO",
		  "POLTCHAGEIST",
		  "SINISTCHA",
		  "PECHARUNT",
		  "PECHARUNT_1",
		  "ABSOL_2",
		  "FROSLASS_1",
		  "CHANDELURE_1",
		  "GOLURK_1"
		]
	  ],

	  "Bird": [
		"PIDGEY",
		"SPEAROW",
		"HOOTHOOT",
		"TAILLOW",
		"WINGULL",
		"STARLY",
		"PIDOVE",
		"FLETCHLING",
		"PIKIPEK",
		"ROOKIDEE",
		"SQUAWKABILLY",
		"WATTREL"
	  ],
	  "Critter": [
		"RATTATA",
		"SENTRET",
		"ZIGZAGOON",
		"BIDOOF",
		"PATRAT",
		"BUNNELBY",
		"YUNGOOS",
		"RATTATA_1",
		"SKWOVET",
		"ZIGZAGOON_1",
		"LECHONK"
	  ],
	  "RegionalBug": [
		"CATERPIE",
		"WEEDLE",
		"LEDYBA",
		"SPINARAK",
		"WURMPLE",
		"KRICKETOT",
		"SEWADDLE",
		"VENIPEDE",
		"SCATTERBUG",
		"GRUBBIN",
		"BLIPBUG",
		"TAROUNTULA",
		"NYMBLE"
	  ],
	  "Pseudo": [
		"DRAGONITE",
		"TYRANITAR",
		"SALAMENCE",
		"METAGROSS",
		"GARCHOMP",
		"HYDREIGON",
		"GOODRA",
		"KOMMOO",
		"DRAGAPULT",
		"GOODRA_1",
		"BAXCALIBUR",
		"DRAGONITE_1",
		"TYRANITAR_1",
		"SALAMENCE_1",
		"METAGROSS_1",
		"GARCHOMP_1",
		"GARCHOMP_2",
		"BAXCALIBUR_1"
	  ],
	  "Pikaclone": [
		"PICHU",
		"PICHU_1",
		"PICHU_2",
		"PIKACHU",
		"RAICHU",
		"RAICHU_1",
		"RAICHU_2",
		"RAICHU_3",
		"PIKACHU_70",
		"PLUSLE",
		"MINUN",
		"PACHIRISU",
		"EMOLGA",
		"DEDENNE",
		"TOGEDEMARU",
		"MIMIKYU",
		"MIMIKYU_1",
		"MORPEKO",
		"MORPEKO_1",
		"PAWMI",
		"PAWMO",
		"PAWMOT",
		"PIKACHU_2",
		"PIKACHU_3",
		"PIKACHU_4",
		"PIKACHU_5",
		"PIKACHU_6",
		"PIKACHU_7",
		"PIKACHU_8",
		"PIKACHU_9",
		"PIKACHU_10",
		"PIKACHU_11",
		"PIKACHU_12",
		"PIKACHU_13",
		"PIKACHU_14",
		"PIKACHU_15"
	  ],
	  "Eevee": [
		"EEVEE",
		"VAPOREON",
		"JOLTEON",
		"FLAREON",
		"ESPEON",
		"UMBREON",
		"LEAFEON",
		"GLACEON",
		"SYLVEON",
		"EEVEE_1"
	  ],
	  "Fossil": [
		"OMANYTE",
		"OMASTAR",
		"KABUTO",
		"KABUTOPS",
		"AERODACTYL",
		"AERODACTYL_1",
		"LILEEP",
		"CRADILY",
		"ANORITH",
		"ARMALDO",
		"CRANIDOS",
		"RAMPARDOS",
		"SHIELDON",
		"BASTIODON",
		"TIRTOUGA",
		"CARRACOSTA",
		"ARCHEN",
		"ARCHEOPS",
		"TYRUNT",
		"TYRANTRUM",
		"AMAURA",
		"AURORUS",
		"DRACOZOLT",
		"ARCTOZOLT",
		"DRACOVISH",
		"ARCTOVISH"
	  ],
	  "Regional": [
		"RATTATA_1",
		"RATICATE_1",
		"RAICHU_1",
		"SANDSHREW_1",
		"SANDSLASH_1",
		"VULPIX_1",
		"NINETALES_1",
		"DIGLETT_1",
		"DUGTRIO_1",
		"MEOWTH_1",
		"PERSIAN_1",
		"GEODUDE_1",
		"GRAVELER_1",
		"GOLEM_1",
		"GRIMER_1",
		"MUK_1",
		"EXEGGUTOR_1",
		"MAROWAK_1",
		"MEOWTH_2",
		"PONYTA_1",
		"RAPIDASH_1",
		"SLOWPOKE_1",
		"SLOWBRO_1",
		"SLOWKING_1",
		"FARFETCHD_1",
		"WEEZING_1",
		"MRMIME_1",
		"ARTICUNO_1",
		"ZAPDOS_1",
		"MOLTRES_1",
		"CORSOLA_1",
		"ZIGZAGOON_1",
		"LINOONE_1",
		"DARUMAKA_2",
		"DARMANITAN_2",
		"DARMANITAN_3",
		"YAMASK_1",
		"STUNFISK_1",
		"GROWLITHE_1",
		"ARCANINE_1",
		"VOLTORB_1",
		"ELECTRODE_1",
		"TYPHLOSION_1",
		"QWILFISH_1",
		"SNEASEL_1",
		"SAMUROTT_1",
		"LILLIGANT_1",
		"ZORUA_1",
		"ZOROARK_1",
		"BASCULIN_2",
		"BRAVIARY_1",
		"SLIGGOO_1",
		"GOODRA_1",
		"AVALUGG_1",
		"DECIDUEYE_1",
		"TAUROS_1",
		"TAUROS_2",
		"TAUROS_3",
		"WOOPER_1"
	  ],
	  "GMax": [
		"VENUSAUR_2",
		"CHARIZARD_3",
		"BLASTOISE_2",
		"BUTTERFREE_1",
		"PIKACHU_70",
		"MEOWTH_3",
		"MACHAMP_1",
		"GENGAR_2",
		"KINGLER_1",
		"LAPRAS_1",
		"EEVEE_1",
		"SNORLAX_1",
		"GARBODOR_1",
		"MELMETAL_1",
		"RILLABOOM_1",
		"CINDERACE_1",
		"INTELEON_1",
		"CORVIKNIGHT_1",
		"ORBEETLE_1",
		"DREDNAW_1",
		"COALOSSAL_1",
		"APPLETUN_1",
		"SANDACONDA_1",
		"TOXTRICITY_2",
		"CENTISKORCH_1",
		"HATTERENE_1",
		"GRIMMSNARL_1",
		"ALCREMIE_70",
		"COPPERAJAH_1",
		"DURALUDON_1",
		"ETERNATUS_1",
		"URSHIFU_2",
		"URSHIFU_3"
	  ],
	  "Box": [
		"HOOH",
		"LUGIA",
		"SUICUNE",
		"GROUDON",
		"KYOGRE",
		"RAYQUAZA",
		"LUGIA_1",
		"DIALGA",
		"PALKIA",
		"GIRATINA_1",
		"RESHIRAM",
		"ZEKROM",
		"KYUREM_1",
		"KYUREM_2",
		"XERNEAS_1",
		"YVELTAL",
		"GROUDON_1",
		"KYOGRE_1",
		"SOLGALEO",
		"LUNALA",
		"NECROZMA_1",
		"NECROZMA_2",
		"ZACIAN_1",
		"ZAMAZENTA_1",
		"ARCEUS",
		"KORAIDON",
		"MIRAIDON",
		"ZYGARDE_5"
	  ],
	  "Mythical": [
		"MEW",
		"CELEBI",
		"JIRACHI",
		"DEOXYS",
		"DEOXYS_1",
		"DEOXYS_2",
		"DEOXYS_3",
		"PHIONE",
		"MANAPHY",
		"DARKRAI",
		"DARKRAI_2",
		"SHAYMIN",
		"SHAYMIN_1",
		"ARCEUS",
		"VICTINI",
		"KELDEO",
		"KELDEO_1",
		"MELOETTA",
		"MELOETTA_1",
		"GENESECT",
		"DIANCIE",
		"DIANCIE_1",
		"HOOPA",
		"HOOPA_1",
		"VOLCANION",
		"MAGEARNA",
		"MAGEARNA_1",
		"MAGEARNA_2",
		"MARSHADOW",
		"MARSHADOW_1",
		"ZERAORA",
		"MELTAN",
		"MELMETAL",
		"MELMETAL_1",
		"ZARUDE",
		"ZARUDE_1",
		"PECHARUNT",
		"PECHARUNT_1"
	  ],
	  "Ultra": [
		"NIHILEGO",
		"BUZZWOLE",
		"PHEROMOSA",
		"XURKITREE",
		"CELESTEELA",
		"KARTANA",
		"GUZZLORD",
		"POIPOLE",
		"NAGANADEL",
		"STAKATAKA",
		"BLACEPHALON"
	  ],
	  "Paradox": [
		"GREATTUSK",
		"SCREAMTAIL",
		"BRUTEBONNET",
		"FLUTTERMANE",
		"SLITHERWING",
		"SANDYSHOCKS",
		"ROARINGMOON",
		"KORAIDON",
		"IRONTREADS",
		"IRONBUNDLE",
		"IRONHANDS",
		"IRONJUGULIS",
		"IRONMOTH",
		"IRONTHORNS",
		"IRONVALIANT",
		"MIRAIDON",
		"WALKINGWAKE",
		"IRONLEAVES",
		"GOUGINGFIRE",
		"RAGINGBOLT",
		"IRONBOULDER",
		"IRONCROWN"
	  ],
	  "Starter": [
		[],
		[
		  "BULBASAUR",
		  "IVYSAUR",
		  "VENUSAUR",
		  "CHARMANDER",
		  "CHARMELEON",
		  "CHARIZARD",
		  "SQUIRTLE",
		  "WARTORTLE",
		  "BLASTOISE",
		  "PIKACHU",
		  "EEVEE"
		],
		[
		  "CHIKORITA",
		  "BAYLEEF",
		  "MEGANIUM",
		  "CYNDAQUIL",
		  "QUILAVA",
		  "TYPHLOSION",
		  "TOTODILE",
		  "CROCONAW",
		  "FERALIGATR"
		],
		[
		  "TREECKO",
		  "GROVYLE",
		  "SCEPTILE",
		  "TORCHIC",
		  "COMBUSKEN",
		  "BLAZIKEN",
		  "MUDKIP",
		  "MARSHTOMP",
		  "SWAMPERT"
		],
		[
		  "TURTWIG",
		  "GROTLE",
		  "TORTERRA",
		  "CHIMCHAR",
		  "MONFERNO",
		  "INFERNAPE",
		  "PIPLUP",
		  "PRINPLUP",
		  "EMPOLEON"
		],
		[
		  "SNIVY",
		  "SERVINE",
		  "SERPERIOR",
		  "TEPIG",
		  "PIGNITE",
		  "EMBOAR",
		  "OSHAWOTT",
		  "DEWOTT",
		  "SAMUROTT"
		],
		[
		  "CHESPIN",
		  "QUILLADIN",
		  "CHESNAUGHT",
		  "FENNEKIN",
		  "BRAIXEN",
		  "DELPHOX",
		  "FROAKIE",
		  "FROGADIER",
		  "GRENINJA"
		],
		[
		  "ROWLET",
		  "DARTRIX",
		  "DECIDUEYE",
		  "LITTEN",
		  "TORRACAT",
		  "INCINEROAR",
		  "POPPLIO",
		  "BRIONNE",
		  "PRIMARINA"
		],
		[
		  "GROOKEY",
		  "THWACKEY",
		  "RILLABOOM",
		  "SCORBUNNY",
		  "RABOOT",
		  "CINDERACE",
		  "SOBBLE",
		  "DRIZZILE",
		  "INTELEON",
		  "DECIDUEYE_1",
		  "TYPHLOSION_1",
		  "SAMUROTT_1"
		],
		[
		  "SPRIGATITO",
		  "FLORAGATO",
		  "MEOWSCARADA",
		  "FUECOCO",
		  "CROCALOR",
		  "SKELEDIRGE",
		  "QUAXLY",
		  "QUAXWELL",
		  "QUAQUAVAL",
		  "MEGANIUM_1",
		  "EMBOAR_1",
		  "FERALIGATR_1"
		]
	  ],
	  "Legendary": [
		[],
		[
		  "ARTICUNO",
		  "ZAPDOS",
		  "MOLTRES",
		  "MEWTWO",
		  "MEW"
		],
		[
		  "RAIKOU",
		  "ENTEI",
		  "SUICUNE",
		  "LUGIA",
		  "HOOH",
		  "CELEBI"
		],
		[
		  "REGIROCK",
		  "REGICE",
		  "REGISTEEL",
		  "LATIAS",
		  "LATIOS",
		  "KYOGRE",
		  "GROUDON",
		  "RAYQUAZA",
		  "JIRACHI",
		  "DEOXYS",
		  "DEOXYS_1",
		  "DEOXYS_2",
		  "DEOXYS_3",
		  "LUGIA_1"
		],
		[
		  "UXIE",
		  "MESPRIT",
		  "AZELF",
		  "DIALGA",
		  "PALKIA",
		  "HEATRAN",
		  "REGIGIGAS",
		  "GIRATINA",
		  "GIRATINA_1",
		  "CRESSELIA",
		  "PHIONE",
		  "MANAPHY",
		  "DARKRAI",
		  "SHAYMIN",
		  "SHAYMIN_1",
		  "ARCEUS",
		  "DIALGA_2"
		],
		[
		  "VICTINI",
		  "COBALION",
		  "TERRAKION",
		  "VIRIZION",
		  "TORNADUS",
		  "TORNADUS_1",
		  "THUNDURUS",
		  "THUNDURUS_1",
		  "RESHIRAM",
		  "ZEKROM",
		  "LANDORUS",
		  "LANDORUS_1",
		  "KYUREM",
		  "KYUREM_1",
		  "KYUREM_2",
		  "KELDEO",
		  "KELDEO_1",
		  "MELOETTA",
		  "MELOETTA_1",
		  "GENESECT"
		],
		[
		  "XERNEAS",
		  "XERNEAS_1",
		  "YVELTAL",
		  "ZYGARDE",
		  "DIANCIE",
		  "DIANCIE_1",
		  "HOOPA",
		  "HOOPA_1",
		  "VOLCANION",
		  "MEWTWO_1",
		  "MEWTWO_2",
		  "LATIAS_1",
		  "LATIOS_1",
		  "KYOGRE_1",
		  "GROUDON_1",
		  "RAYQUAZA_1",
		  "MEWTWO_3"
		],
		[
		  "TYPENULL",
		  "SILVALLY",
		  "TAPUKOKO",
		  "TAPULELE",
		  "TAPUBULU",
		  "TAPUFINI",
		  "COSMOG",
		  "COSMOEM",
		  "SOLGALEO",
		  "LUNALA",
		  "NECROZMA",
		  "NECROZMA_1",
		  "NECROZMA_2",
		  "NECROZMA_3",
		  "MAGEARNA",
		  "MAGEARNA_1",
		  "MARSHADOW",
		  "MARSHADOW_1",
		  "ZERAORA",
		  "MELTAN",
		  "MELMETAL",
		  "ZYGARDE_1",
		  "ZYGARDE_2"
		],
		[
		  "ZACIAN",
		  "ZACIAN_1",
		  "ZACIAN_2",
		  "ZAMAZENTA",
		  "ZAMAZENTA_1",
		  "ZAMAZENTA_2",
		  "ETERNATUS",
		  "ETERNATUS_1",
		  "KUBFU",
		  "URSHIFU",
		  "URSHIFU_1",
		  "URSHIFU_3",
		  "URSHIFU_2",
		  "ZARUDE",
		  "ZARUDE_1",
		  "REGIELEKI",
		  "REGIDRAGO",
		  "GLASTRIER",
		  "SPECTRIER",
		  "CALYREX",
		  "CALYREX_1",
		  "CALYREX_2",
		  "ENAMORUS",
		  "ENAMORUS_1",
		  "ARTICUNO_1",
		  "ZAPDOS_1",
		  "MOLTRES_1",
		  "MELMETAL_1",
		  "DIALGA_1",
		  "PALKIA_1"
		],
		[
		  "WOCHIEN",
		  "CHIENPAO",
		  "TINGLU",
		  "CHIYU",
		  "KORAIDON",
		  "KORAIDON_1",
		  "MIRAIDON",
		  "MIRAIDON_1",
		  "OKIDOGI",
		  "MUNKIDORI",
		  "FEZANDIPITI",
		  "OGERPON",
		  "OGERPON_8",
		  "OGERPON_4",
		  "OGERPON_1",
		  "OGERPON_5",
		  "OGERPON_2",
		  "OGERPON_6",
		  "OGERPON_3",
		  "OGERPON_7",
		  "TERAPAGOS",
		  "TERAPAGOS_1",
		  "TERAPAGOS_2",
		  "PECHARUNT",
		  "PECHARUNT_1",
		  "HEATRAN_1",
		  "DARKRAI_2",
		  "ZYGARDE_5",
		  "MAGEARNA_2"
		]
	  ],
	  "Gimmick": [
		[],
		[
		  "VENUSAUR_1",
		  "CHARIZARD_1",
		  "CHARIZARD_2",
		  "BLASTOISE_1",
		  "BEEDRILL_1",
		  "PIDGEOT_1",
		  "RAICHU_2",
		  "RAICHU_3",
		  "CLEFABLE_1",
		  "ALAKAZAM_1",
		  "VICTREEBEL_1",
		  "SLOWBRO_2",
		  "GENGAR_1",
		  "KANGASKHAN_1",
		  "STARMIE_1",
		  "PINSIR_1",
		  "GYARADOS_1",
		  "AERODACTYL_1",
		  "DRAGONITE_1",
		  "MEWTWO_1",
		  "MEWTWO_2",
		  "CLEFABLE_1",
		  "VICTREEBEL_1",
		  "STARMIE_1",
		  "DRAGONITE_1",
		  "VENUSAUR_2",
		  "CHARIZARD_3",
		  "BLASTOISE_2",
		  "BUTTERFREE_1",
		  "PIKACHU_70",
		  "MEOWTH_3",
		  "MACHAMP_1",
		  "GENGAR_2",
		  "KINGLER_1",
		  "LAPRAS_1",
		  "EEVEE_1",
		  "SNORLAX_1"
		  
		],
		[
		  "MEGANIUM_1",
		  "FERALIGATR_1",
		  "AMPHAROS_1",
		  "STEELIX_1",
		  "SCIZOR_1",
		  "HERACROSS_1",
		  "SKARMORY_1",
		  "HOUNDOOM_1",
		  "TYRANITAR_1"
		],
		[
		  "SCEPTILE_1",
		  "BLAZIKEN_1",
		  "SWAMPERT_1",
		  "GARDEVOIR_1",
		  "SABLEYE_1",
		  "MAWILE_1",
		  "AGGRON_1",
		  "MEDICHAM_1",
		  "MANECTRIC_1",
		  "SHARPEDO_1",
		  "CAMERUPT_1",
		  "ALTARIA_1",
		  "BANETTE_1",
		  "CHIMECHO_1",
		  "ABSOL_1",
		  "ABSOL_2",
		  "GLALIE_1",
		  "SALAMENCE_1",
		  "METAGROSS_1",
		  "LATIAS_1",
		  "LATIOS_1",
		  "KYOGRE_1",
		  "GROUDON_1",
		  "RAYQUAZA_1",
		  "LUGIA_1",
		  "KECLEON_1"
		],
		[
		  "STARAPTOR_1",
		  "LOPUNNY_1",
		  "GARCHOMP_1",
		  "GARCHOMP_2",
		  "LUCARIO_1",
		  "LUCARIO_2",
		  "ABOMASNOW_1",
		  "GALLADE_1",
		  "FROSLASS_1",
		  "HEATRAN_1",
		  "DARKRAI_1",
		  "DIALGA_2"
		],
		[
		  "EMBOAR_1",	
		  "EXCADRILL_1",
		  "AUDINO_1",
		  "SCOLIPEDE_1",
		  "SCRAFTY_1",
		  "EELEKTROSS_1",
		  "CHANDELURE_1",
		  "GOLURK_1",
		  "GARBODOR_1",
		  "BRYCENMAN",
		  "UFO",
		  "MT",
		  "MT2",
		  "TRANSPORT",
		  "BLACKBELT",
		  "BLACKDOOR",
		  "WHITEDOOR",
		  "MONICA",
		  "HUMANOID",
		  "MONSTER",
		  "F00",
		  "F00_1",
		  "MAJIN"
		],
		[
		  "VENUSAUR_1",
		  "CHARIZARD_1",
		  "CHARIZARD_2",
		  "BLASTOISE_1",
		  "BEEDRILL_1",
		  "PIDGEOT_1",
		  "ALAKAZAM_1",
		  "SLOWBRO_2",
		  "GENGAR_1",
		  "KANGASKHAN_1",
		  "PINSIR_1",
		  "GYARADOS_1",
		  "AERODACTYL_1",
		  "MEWTWO_1",
		  "MEWTWO_2",
		  "AMPHAROS_1",
		  "STEELIX_1",
		  "SCIZOR_1",
		  "HERACROSS_1",
		  "HOUNDOOM_1",
		  "TYRANITAR_1",
		  "SCEPTILE_1",
		  "BLAZIKEN_1",
		  "SWAMPERT_1",
		  "GARDEVOIR_1",
		  "SABLEYE_1",
		  "MAWILE_1",
		  "AGGRON_1",
		  "MEDICHAM_1",
		  "MANECTRIC_1",
		  "SHARPEDO_1",
		  "CAMERUPT_1",
		  "ALTARIA_1",
		  "BANETTE_1",
		  "ABSOL_1",
		  "GLALIE_1",
		  "SALAMENCE_1",
		  "METAGROSS_1",
		  "LATIAS_1",
		  "LATIOS_1",
		  "KYOGRE_1",
		  "GROUDON_1",
		  "RAYQUAZA_1",
		  "LOPUNNY_1",
		  "GARCHOMP_1",
		  "LUCARIO_1",
		  "ABOMASNOW_1",
		  "GALLADE_1",
		  "AUDINO_1",
		  "DIANCIE_1",
		  "CHESNAUGHT_1",
		  "DELPHOX_1",
		  "GRENINJA_1",
		  "PYROAR_2",
		  "FLOETTE_6",
		  "MEOWSTIC_2",
		  "MALAMAR_1",
		  "BARBARACLE_1",
		  "DRAGALGE_1",
		  "HAWLUCHA_1",
		  "ZYGARDE_5",
		  "MEWTWO_3"
		],
		[
		  "RATTATA_1",
		  "RATICATE_1",
		  "RAICHU_1",
		  "SANDSHREW_1",
		  "SANDSLASH_1",
		  "VULPIX_1",
		  "NINETALES_1",
		  "DIGLETT_1",
		  "DUGTRIO_1",
		  "MEOWTH_1",
		  "PERSIAN_1",
		  "GEODUDE_1",
		  "GRAVELER_1",
		  "GOLEM_1",
		  "GRIMER_1",
		  "MUK_1",
		  "EXEGGUTOR_1",
		  "MAROWAK_1",
		  "CRABOMINABLE_1",
		  "GOLISOPOD_1",
		  "DRAMPA_1",
		  "MAGEARNA_2",
		  "ZERAORA_1",
		  "MELMETAL_1",
		  "GRENINJA_2",
		  "NECROZMA_3"
		],
		[
		  "MEOWTH_2",
		  "PONYTA_1",
		  "RAPIDASH_1",
		  "SLOWPOKE_1",
		  "SLOWBRO_1",
		  "SLOWKING_1",
		  "FARFETCHD_1",
		  "WEEZING_1",
		  "MRMIME_1",
		  "ARTICUNO_1",
		  "ZAPDOS_1",
		  "MOLTRES_1",
		  "CORSOLA_1",
		  "ZIGZAGOON_1",
		  "LINOONE_1",
		  "DARUMAKA_2",
		  "DARMANITAN_2",
		  "DARMANITAN_3",
		  "YAMASK_1",
		  "STUNFISK_1",
		  "GROWLITHE_1",
		  "ARCANINE_1",
		  "VOLTORB_1",
		  "ELECTRODE_1",
		  "TYPHLOSION_1",
		  "QWILFISH_1",
		  "SNEASEL_1",
		  "SAMUROTT_1",
		  "LILLIGANT_1",
		  "BASCULIN_2",
		  "ZORUA_1",
		  "ZOROARK_1",
		  "BRAVIARY_1",
		  "SLIGGOO_1",
		  "GOODRA_1",
		  "AVALUGG_1",
		  "DECIDUEYE_1",
		  "RILLABOOM_1",
		  "CINDERACE_1",
		  "INTELEON_1",
		  "CORVIKNIGHT_1",
		  "ORBEETLE_1",
		  "DREDNAW_1",
		  "COALOSSAL_1",
		  "APPLETUN_1",
		  "SANDACONDA_1",
		  "TOXTRICITY_2",
		  "CENTISKORCH_1",
		  "HATTERENE_1",
		  "GRIMMSNARL_1",
		  "ALCREMIE_70",
		  "COPPERAJAH_1",
		  "DURALUDON_1",
		  "ETERNATUS_1",
		  "URSHIFU_2",
		  "URSHIFU_3",
		  "FALINKS_1"
		],
		[
		  "TOEDSCOOL",
		  "TOEDSCRUEL",
		  "WIGLETT",
		  "WUGTRIO",
		  "POLTCHAGEIST",
		  "SINISTCHA",
		  "TAUROS_1",
		  "TAUROS_2",
		  "TAUROS_3",
		  "WOOPER_1",
		  "OGERPON_4",
		  "OGERPON_5",
		  "OGERPON_6",
		  "OGERPON_7",
		  "TERAPAGOS_2",
		  "RAICHU_2",
		  "RAICHU_3",
		  "CLEFABLE_1",
		  "VICTREEBEL_1",
		  "STARMIE_1",
		  "DRAGONITE_1",
		  "MEGANIUM_1",
		  "FERALIGATR_1",
		  "SKARMORY_1",
		  "CHIMECHO_1",
		  "ABSOL_2",
		  "STARAPTOR_1",
		  "GARCHOMP_2",
		  "LUCARIO_2",
		  "FROSLASS_1",
		  "HEATRAN_1",
		  "DARKRAI_2",
		  "EMBOAR_1",
		  "EXCADRILL_1",
		  "SCOLIPEDE_1",
		  "SCRAFTY_1",
		  "EELEKTROSS_1",
		  "CHANDELURE_1",
		  "GOLURK_1",
		  "CHESNAUGHT_1",
		  "DELPHOX_1",
		  "GRENINJA_1",
		  "PYROAR_2",
		  "FLOETTE_6",
		  "MEOWSTIC_2",
		  "MALAMAR_1",
		  "BARBARACLE_1",
		  "DRAGALGE_1",
		  "HAWLUCHA_1",
		  "ZYGARDE_5",
		  "CRABOMINABLE_1",
		  "GOLISOPOD_1",
		  "DRAMPA_1",
		  "MAGEARNA_2",
		  "ZERAORA_1",
		  "FALINKS_1",
		  "SCOVILLAIN_1",
		  "GLIMMORA_1",
		  "TATSUGIRI_3",
		  "BAXCALIBUR_1"

		]
	  ],
	  "Baby": [
		"PICHU",
		"PICHU_1",
		"PICHU_2",
		"CLEFFA",
		"IGGLYBUFF",
		"TOGEPI",
		"TYROGUE",
		"SMOOCHUM",
		"ELEKID",
		"MAGBY",
		"AZURILL",
		"WYNAUT",
		"BUDEW",
		"CHINGLING",
		"BONSLY",
		"MIMEJR",
		"HAPPINY",
		"MUNCHLAX",
		"RIOLU",
		"MANTYKE",
		"TOXEL"
	  ],
	  "NewEvolution": [
		"CROBAT",
		"BELLOSSOM",
		"POLITOED",
		"ESPEON",
		"UMBREON",
		"SLOWKING",
		"STEELIX",
		"SCIZOR",
		"KINGDRA",
		"PORYGON2",
		"BLISSEY",
		"ROSERADE",
		"AMBIPOM",
		"MISMAGIUS",
		"HONCHKROW",
		"WEAVILE",
		"MAGNEZONE",
		"LICKILICKY",
		"RHYPERIOR",
		"TANGROWTH",
		"ELECTIVIRE",
		"MAGMORTAR",
		"TOGEKISS",
		"YANMEGA",
		"LEAFEON",
		"GLACEON",
		"GLISCOR",
		"MAMOSWINE",
		"PORYGONZ",
		"GALLADE",
		"PROBOPASS",
		"DUSKNOIR",
		"FROSLASS",
		"SYLVEON",
		"OBSTAGOON",
		"PERRSERKER",
		"CURSOLA",
		"SIRFETCHD",
		"MRRIME",
		"RUNERIGUS",
		"WYRDEER",
		"KLEAVOR",
		"URSALUNA",
		"URSALUNA_1",
		"BASCULEGION",
		"BASCULEGION_1",
		"SNEASLER",
		"OVERQWIL",
		"ANNIHILAPE",
		"CLODSIRE",
		"FARIGIRAF",
		"DUDUNSPARCE",
		"DUDUNSPARCE_1",
		"KINGAMBIT",
		"DIPPLIN",
		"ARCHALUDON",
		"HYDRAPPLE"
	  ],
	  "Spinda": [
		"SPINDA"
	  ],
	  "Vivillon": [
		"VIVILLON",
		"VIVILLON_1",
		"VIVILLON_2",
		"VIVILLON_3",
		"VIVILLON_4",
		"VIVILLON_5",
		"VIVILLON_6",
		"VIVILLON_7",
		"VIVILLON_8",
		"VIVILLON_9",
		"VIVILLON_10",
		"VIVILLON_11",
		"VIVILLON_12",
		"VIVILLON_13",
		"VIVILLON_14",
		"VIVILLON_15",
		"VIVILLON_16",
		"VIVILLON_17",
		"VIVILLON_18",
		"VIVILLON_19"
	  ],

	  "Alcremie": [
		"ALCREMIE",
		"ALCREMIE_7",
		"ALCREMIE_14",
		"ALCREMIE_21",
		"ALCREMIE_28",
		"ALCREMIE_35",
		"ALCREMIE_42",
		"ALCREMIE_49",
		"ALCREMIE_56",
		"ALCREMIE_70"
	  ],
	  "alc0": [
		"ALCREMIE",
		"ALCREMIE_1",
		"ALCREMIE_2",
		"ALCREMIE_3",
		"ALCREMIE_4",
		"ALCREMIE_5",
		"ALCREMIE_6"
	  ],
	  "alc7": [
		"ALCREMIE_7",
		"ALCREMIE_8",
		"ALCREMIE_9",
		"ALCREMIE_10",
		"ALCREMIE_11",
		"ALCREMIE_12",
		"ALCREMIE_13"
	  ],
	  "alc14": [
		"ALCREMIE_14",
		"ALCREMIE_15",
		"ALCREMIE_16",
		"ALCREMIE_17",
		"ALCREMIE_18",
		"ALCREMIE_19",
		"ALCREMIE_20"
	  ],
	  "alc21": [
		"ALCREMIE_21",
		"ALCREMIE_22",
		"ALCREMIE_23",
		"ALCREMIE_24",
		"ALCREMIE_25",
		"ALCREMIE_26",
		"ALCREMIE_27"
	  ],
	  "alc28": [
		"ALCREMIE_28",
		"ALCREMIE_29",
		"ALCREMIE_30",
		"ALCREMIE_31",
		"ALCREMIE_32",
		"ALCREMIE_33",
		"ALCREMIE_34"
	  ],
	  "alc35": [
		"ALCREMIE_35",
		"ALCREMIE_36",
		"ALCREMIE_37",
		"ALCREMIE_38",
		"ALCREMIE_39",
		"ALCREMIE_40",
		"ALCREMIE_41"
	  ],
	  "alc42": [
		"ALCREMIE_42",
		"ALCREMIE_43",
		"ALCREMIE_44",
		"ALCREMIE_45",
		"ALCREMIE_46",
		"ALCREMIE_47",
		"ALCREMIE_48"
	  ],
	  "alc49": [
		"ALCREMIE_49",
		"ALCREMIE_50",
		"ALCREMIE_51",
		"ALCREMIE_52",
		"ALCREMIE_53",
		"ALCREMIE_54",
		"ALCREMIE_55"
	  ],
	  "alc56": [
		"ALCREMIE_56",
		"ALCREMIE_57",
		"ALCREMIE_58",
		"ALCREMIE_59",
		"ALCREMIE_60",
		"ALCREMIE_61",
		"ALCREMIE_62"
	  ],
	  "Types": [
		"Normal",
		"Fire",
		"Water",
		"Grass",
		"Electric",
		"Ice",
		"Fighting",
		"Poison",
		"Ground",
		"Flying",
		"Psychic",
		"Bug",
		"Rock",
		"Ghost",
		"Dragon",
		"Dark",
		"Steel",
		"Fairy"
	  ],
	  "PokeBall": [
		"PokeBall",
		"GreatBall",
		"UltraBall",
		"MasterBall",
		"SafariBall",
		"FastBall",
		"LevelBall",
		"LureBall",
		"HeavyBall",
		"LoveBall",
		"FriendBall",
		"MoonBall",
		"SportBall",
		"NetBall",
		"DiveBall",
		"NestBall",
		"RepeatBall",
		"TimerBall",
		"LuxuryBall",
		"PremierBall",
		"DuskBall",
		"HealBall",
		"QuickBall",
		"CherishBall",
		"ParkBall",
		"DreamBall",
		"BeastBall",
		"StrangeBall",
		"GSBall",
		"HisuiPokeBall",
		"HisuiGreatBall",
		"HisuiUltraBall",
		"FeatherBall",
		"WingBall",
		"JetBall",
		"HisuiHeavyBall",
		"LeadenBall",
		"GigatonBall",
		"OriginBall"
	  ]
	}
var array_of_forms = ["GENESECT","GENESECT_1","GENESECT_2","GENESECT_3","GENESECT_4","LUNALA","LUNALA_1","SOLGALEO","SOLGALEO_1","MARSHADOW","MARSHADOW_1","MIMIKYU","MIMIKYU_1","ZACIAN","ZACIAN_2","ZAMAZENTA","ZAMAZENTA_2","ZARUDE","ZARUDE_1","PIKACHU","PIKACHU_2","PIKACHU_3","PIKACHU_4","PIKACHU_5","PIKACHU_6","PIKACHU_7","PIKACHU_8","PIKACHU_9","PIKACHU_10","PIKACHU_11","PIKACHU_12","PIKACHU_13","PIKACHU_14","PIKACHU_15","ABOMASNOW","ABOMASNOW_female","ALAKAZAM","ALAKAZAM_female","AIPOM","AIPOM_female","AMBIPOM","AMBIPOM_female","BEAUTIFLY","BEAUTIFLY_female","BIBAREL","BIBAREL_female","BIDOOF","BIDOOF_female","BLAZIKEN","BLAZIKEN_female","BUTTERFREE","BUTTERFREE_female","CACTURNE","CACTURNE_female","CAMERUPT","CAMERUPT_female","COMBEE","COMBEE_female","COMBUSKEN","COMBUSKEN_female","CROAGUNK","CROAGUNK_female","DODRIO","DODRIO_female","DODUO","DODUO_female","DONPHAN","DONPHAN_female","DUSTOX","DUSTOX_female","FINNEON","FINNEON_female","GARCHOMP","GARCHOMP_female","GIBLE","GIBLE_female","GIRAFARIG","GIRAFARIG_female","GLIGAR","GLIGAR_female","GLOOM","GLOOM_female","GOLBAT","GOLBAT_female","GOLDEEN","GOLDEEN_female","GULPIN","GULPIN_female","GYARADOS","GYARADOS_female","HERACROSS","HERACROSS_female","HOUNDOOM","HOUNDOOM_female","HYPNO","HYPNO_female","KADABRA","KADABRA_female","KRICKETOT","KRICKETOT_female","KRICKETUNE","KRICKETUNE_female","LEDIAN","LEDIAN_female","LEDYBA","LEDYBA_female","LUDICOLO","LUDICOLO_female","LUMINEON","LUMINEON_female","LUXIO","LUXIO_female","LUXRAY","LUXRAY_female","MAGIKARP","MAGIKARP_female","MAMOSWINE","MAMOSWINE_female","MEDICHAM","MEDICHAM_female","MEDITITE","MEDITITE_female","MEGANIUM","MEGANIUM_female","MILOTIC","MILOTIC_female","NUMEL","NUMEL_female","NUZLEAF","NUZLEAF_female","OCTILLERY","OCTILLERY_female","PIKACHU","PIKACHU_female","PILOSWINE","PILOSWINE_female","POLITOED","POLITOED_female","QUAGSIRE","QUAGSIRE_female","RAICHU","RAICHU_female","RATICATE","RATICATE_female","RATTATA","RATTATA_female","RELICANTH","RELICANTH_female","RHYDON","RHYDON_female","RHYHORN","RHYHORN_female","RHYPERIOR","RHYPERIOR_female","ROSELIA","ROSELIA_female","ROSERADE","ROSERADE_female","SCIZOR","SCIZOR_female","SCYTHER","SCYTHER_female","SEAKING","SEAKING_female","SHIFTRY","SHIFTRY_female","SHINX","SHINX_female","SNEASEL","SNEASEL_female","SNEASEL_1","SNEASEL_1_female","SNOVER","SNOVER_female","STARAPTOR","STARAPTOR_female","STARAVIA","STARAVIA_female","STARLY","STARLY_female","STEELIX","STEELIX_female","SUDOWOODO","SUDOWOODO_female","SWALOT","SWALOT_female","TANGROWTH","TANGROWTH_female","TOXICROAK","TOXICROAK_female","URSARING","URSARING_female","VENUSAUR","VENUSAUR_female","VILEPLUME","VILEPLUME_female","WEAVILE","WEAVILE_female","WOBBUFFET","WOBBUFFET_female","WOOPER","WOOPER_female"];

var rev_map = {}
var type_count_array = ["Grass", "Poison", "Fire", "Flying", "Dragon", "Water", "Bug",
	"Normal", "Dark", "Electric", "Psychic", "Ground", "Ice",
	"Steel", "Fairy", "Fighting", "Rock", "Ghost"]
for(var type in type_count_array) {
	let gens = arrays[type_count_array[type]];
	for(let i=1; i<gens.length; i++) {
		for(let mon in gens[i]) {
			if(!rev_map[gens[i][mon]])
				rev_map[gens[i][mon]] = [];
			rev_map[gens[i][mon]].push(type_count_array[type])
		}
	}
}

var MODE = {
	SITE: 2,
	STRICT: 1,
	STANDARD: 2,
	SURPLUS: 3,
	SILLY: 4
}
function addToArray(key, category, gen, fs, spliceInfo) {
	let add_to = arrays[category];
	if(typeof gen == "number" || typeof gen == "string") {
		add_to = arrays[category][gen];
	}else if(gen !== null) {
		for(let g in gen) {
			addToArray(key, category, gen[g], fs, spliceInfo);
		}
		return;
	}
	if(add_to.includes(key))
		return;
	if(spliceInfo) {
		let newindex = add_to.indexOf(spliceInfo.after);
		if(newindex >= 0) {
			newindex++;
			if(add_to[newindex] == spliceInfo.after + "_female")
				newindex++;
			if(!spliceInfo.dontroll && !spliceInfo.after.match(/_/)) {
				while(add_to[newindex] && add_to[newindex].match(spliceInfo.after)) {
					newindex++;
				}
			}
		}
		if(spliceInfo.before) {
			let alt_index = add_to.indexOf(spliceInfo.before);
			if(alt_index >= 0) {
				newindex = alt_index;
			}
		}
		if(newindex >= 0) {
			add_to.splice(newindex, 0, key);
			if(fs && MODE.SITE >= MODE.SILLY)
				add_to.splice(newindex+1, 0, key+"_female");
			return;
		}
	}
	add_to.push(key);
	if(fs && MODE.SITE >= MODE.SILLY)
		add_to.push(key+"_female");
}
function remodeArrays() {
	let temp = type_count_array.concat(["Gimmick", "Legendary", "Starter"]);
	for(let t in temp) {
		arrays[temp[t]] = [];
		for(let i=0; i<10; i++) {
			arrays[temp[t]].push([]);
		}
	}
	arrays.Mythical = [];
	let form_order = {
		regional: [],
		regional2: [],
		mega: [],
		gmax: [],
		paradox: [],
		gimmick: [],
		other: [],
		spam: []
	}
	let mechanical = ["mega", "gmax"];
	let other_gimmick = ["regional", "regional2", "paradox", "gimmick", "pokestar"];
	let all_gimmicks = mechanical.concat(other_gimmick);
	/*
	Hierarchy
		New Pokemon. Minor forms can appear here if nondisruptive
		Regional Variants.
		Mechanical forms
		Spam forms
	*/
	for(let p in pokedex) {
		// handle base form
		let mon = pokedex[p];
		if(MODE.SITE == MODE.STRICT && mon.kind == "pokestar")
			continue;
		let debut = mon.gen;
		let types = mon.types;
		if(mon.kind == "spam") {
			form_order.spam.push([p, ""]);
		}
		else if(mon.kind == "pokestar") {
			form_order.gimmick.push([p, ""]);
		}
		else{
			for(let t in mon.types) {
				addToArray(p, types[t], debut, mon.fs, mon.splice);
			}
			// convergent Gimmick
			if(mon.kind == "convergent") {
				// always debut Gimmick
				addToArray(p, "Gimmick", debut, mon.fs, mon.splice);
				// in silly mode, also inspiration Gimmick
				if(MODE.SITE >= MODE.SILLY) {
					addToArray(p, "Gimmick", mon.insp, mon.fs, mon.splice);
				}
			}
			// dupe paradox to form order for gimmick column and type backadding
			if(mon.kind == "paradox" && MODE.SITE >= MODE.SURPLUS)
				form_order.paradox.push([p, ""]);
			// legendary column
			if(mon.hasOwnProperty("ls")) {
				addToArray(p, "Legendary", debut, mon.fs, mon.splice);
				if(mon.ls == 2) {
					addToArray(p, "Mythical", null, mon.fs, mon.splice);
				}
			}
		}
		// prepare subforms
		for(let f in mon.forms) {
			let thisForm = mon.forms[f];
			let launch = thisForm.gen || debut;
			types = thisForm.types || types;
			switch(thisForm.kind) {
				// regional, mega, and gmax go to form handling later
				case "regional":
				case "regional2":
				case "mega":
				case "gmax":
				case "gimmick":
					form_order[thisForm.kind].push([p, f]);
					break;
				// same-gen major and minor forms go in arrays now
				// later-gen go to form handling later
				// minor are ignored on strict mode
				case "minor":
					if(MODE.SITE == MODE.STRICT)
						break;
				case "major":
					// if surplus mode or same gen debut, put in base's array
					if(launch == debut || MODE.SITE >= MODE.SURPLUS) {
						// always add after the mon
						for(let t in types) {
							addToArray(p+"_"+f, types[t], debut, thisForm.fs, thisForm.splice);
						}
						// Legendary
						if(mon.hasOwnProperty("ls")) {
							addToArray(p+"_"+f, "Legendary", debut, thisForm.fs, thisForm.splice);
							if(mon.ls == 2) {
								addToArray(p+"_"+f, "Mythical", null, thisForm.fs, thisForm.splice);
							}
						}
					}
					// if not same gen debut, put in other array of form handler
					if(launch != debut)
						form_order.other.push([p, f]);
					break;
				case "silly":
					// eg Genesect, Sinistea; only used on Silly Mode
					if(MODE.SITE < MODE.SILLY)
						break;
				case "extra":
					// eg Arceus, Silvally; only used on Surplus and Silly
					if(MODE.SITE < MODE.SURPLUS)
						break;
				case "spam":
				case "pokestar":
					// eg Unown, Vivillon. Skipped on Strict
					if(MODE.SITE < MODE.STANDARD)
						break;
				default:
					if(thisForm.kind == "pokestar") {
						form_order.gimmick.push([p, f]);
					}
					else if(thisForm.kind == "spam") {
						form_order.spam.push([p, f]);
					}
					else{
						form_order.other.push([p, f]);
					}
					break;
			}
		}
	}
	// now seed in forms
	for(let kind in form_order) {
		for(let pairIndex in form_order[kind]) {
			let [baseKey, formKey] = form_order[kind][pairIndex];
			let base_mon = pokedex[baseKey];
			let form_data = base_mon;
			if(base_mon.forms && base_mon.forms[formKey])
				form_data = base_mon.forms[formKey];
			let debut = base_mon.gen;
			if(form_data.kind == "paradox")
				debut = base_mon.insp;
			let launch = form_data.gen || debut;
			let types = form_data.types || base_mon.types;
			let sprite = baseKey;
			if(formKey != "")
				sprite += "_" + formKey;
			let spliceInfo = form_data.splice || {}
			if(!spliceInfo.after && mechanical.includes(form_data.kind))
				spliceInfo.after = baseKey;
			/*
				Mega, GMax
					Types: Launch (+debut at Surplus)
					Gimmick: Debut (+launch at Surplus)
				Regional, Gimmick (ex shadow lugia)
					Types: Launch (+debut at Surplus)
					Gimmick: Launch (+debut at Surplus)
				other
					Types: Launch (+debut at Surplus)
			*/
			// types always go in Launch
			// also in base debut if different and Surplus+
			// gimmick forms don't go to types in Strict
			let gens_to_add = [];
			if(MODE.SITE > MODE.STRICT) {
				// outside of strict mode, add to launch types
				gens_to_add.push(launch);
			}
			else if(!all_gimmicks.includes(kind)) {
				// add non-gimmick forms to launch types in strict mode
				gens_to_add.push(launch);
			}
			if(form_data.kind == "paradox") {
				// add to inspiration generation in silly mode
				if(MODE.SITE >= MODE.SILLY)
					gens_to_add.push(base_mon.insp);
			}
			else if(MODE.SITE >= MODE.SURPLUS) {
				// add other kinds to debut types in surplus Mode
				gens_to_add.push(debut);
			}
			if(gens_to_add.length > 0) {
				for(let t in types) {
					addToArray(sprite, types[t], gens_to_add, form_data.fs, spliceInfo);
				}
				// Legendary column / Mythical box
				if(base_mon.hasOwnProperty("ls")) {
					addToArray(sprite, "Legendary", gens_to_add, form_data.fs, spliceInfo);
					if(base_mon.ls == 2)
						addToArray(sprite, "Mythical", null, form_data.fs, spliceInfo);
				}
			}
			// Gimmick
			// goes in Debut if Mega, Gmax, or SURPLUS+ Regional, Gimmick
			if(mechanical.includes(kind) || (other_gimmick.includes(kind) && MODE.SITE != MODE.STANDARD)) {
				addToArray(sprite, "Gimmick", debut, form_data.fs, spliceInfo);
			}
			// goes in Launch if Regional, Gimmick, Gen6Mega, or SURPLUS+ Mega, Gmax
			if(other_gimmick.includes(kind) || (mechanical.includes(kind) && MODE.SITE != MODE.STANDARD) || kind == "mega") {
				addToArray(sprite, "Gimmick", launch, form_data.fs, spliceInfo);
			}
		}
	}
	
	// other arrays
	/*
		Bird, Critter, Bug contains first form
		+ last in Surplus
		+ middle in Silly
		Psuedo contains last form
		+ first in Surplus
		+ middle in Silly
		Pikaclone cuts the minor forms in Serious
	*/
	let alterable_arrays = ["Bird", "Critter", "RegionalBug", "Pseudo", "Pikaclone"];
	let categoryMap = {
		Bird: {
			"PIDGEY": 1,
			"PIDGEOTTO": 4,
			"PIDGEOT": 3,
			"PIDGEOT_1": 4,
			"SPEAROW": 1,
			"FEAROW": 3,
			"HOOTHOOT": 1,
			"NOCTOWL": 3,
			"TAILLOW": 1,
			"SWELLOW": 3,
			"WINGULL": 1,
			"PELIPPER": 3,
			"STARLY": 1,
			"STARAVIA": 4,
			"STARAPTOR": 3,
			"STARAPTOR_1": 4,
			"PIDOVE": 1,
			"TRANQUILL": 4,
			"UNFEZANT": 3,
			"UNFEZANT_1": 3,
			"FLETCHLING": 1,
			"FLETCHINDER": 4,
			"TALONFLAME": 3,
			"PIKIPEK": 1,
			"TRUMBEAK": 4,
			"TOUCANNON": 3,
			"ROOKIDEE": 1,
			"CORVISQUIRE": 4,
			"CORVIKNIGHT": 3,
			"SQUAWKABILLY": 1,
			"WATTREL": 1,
			"KILOWATTREL": 3
		},
		Critter: {
			"RATTATA": 1,
			"RATICATE": 3,
			"SENTRET": 1,
			"FURRET": 3,
			"ZIGZAGOON": 1,
			"LINOONE": 3,
			"BIDOOF": 1,
			"BIBAREL": 3,
			"PATRAT": 1,
			"WATCHOG": 3,
			"BUNNELBY": 1,
			"DIGGERSBY": 3,
			"YUNGOOS": 1,
			"GUMSHOOS": 3,
			"RATTATA_1": 1,
			"RATICATE_1": 3,
			"SKWOVET": 1,
			"GREEDENT": 3,
			"ZIGZAGOON_1": 1,
			"LINOONE_1": 3,
			"OBSTAGOON": 3,
			"LECHONK": 1,
			"OINKOLOGNE": 3,
			"OINKOLOGNE_1": 3
		},
		RegionalBug: {
			"CATERPIE": 1,
			"METAPOD": 4,
			"BUTTERFREE": 3,
			"BUTTERFREE_1": 3,
			"WEEDLE": 1,
			"KAKUNA": 4,
			"BEEDRILL": 3,
			"BEEDRILL_1": 3,
			"LEDYBA": 1,
			"LEDIAN": 3,
			"SPINARAK": 1,
			"ARIADOS": 3,
			"WURMPLE": 1,
			"SILCOON": 4, 
			"BEAUTIFLY": 3,
			"CASCOON": 4, 
			"DUSTOX": 3,
			"KRICKETOT": 1,
			"KRICKETUNE": 3,
			"SEWADDLE": 1,
			"SWADLOON": 4,
			"LEAVANNY": 3,
			"VENIPEDE": 1,
			"WHIRLIPEDE": 4,
			"SCOLIPEDE": 3,
			"SCOLIPEDE_1": 3,
			"SCATTERBUG": 1,
			"SPEWPA": 4,
			"VIVILLON": 3,
			"GRUBBIN": 1,
			"CHARJABUG": 4,
			"VIKAVOLT": 3,
			"BLIPBUG": 1,
			"DOTTLER": 4,
			"ORBEETLE": 3,
			"ORBEETLE_1": 3,
			"SNOM": 3,
			"FROSMOTH": 4,
			"TAROUNTULA": 1,
			"SPIDOPS": 3,
			"NYMBLE": 1,
			"LOKIX": 3
			
		},
		Pseudo: {
			"DRATINI": 3,
			"DRAGONAIR": 4,
			"DRAGONITE": 1,
			"LARVITAR": 3,
			"PUPITAR": 4,
			"TYRANITAR": 1,
			"BAGON": 3,
			"SHELGON": 4,
			"SALAMENCE": 1,
			"BELDUM": 3,
			"METANG": 4,
			"METAGROSS": 1,
			"GIBLE": 3,
			"GABITE": 4,
			"GARCHOMP": 1,
			"DEINO": 3,
			"ZWEILOUS": 4,
			"HYDREIGON": 1,
			"GOOMY": 3,
			"SLIGGOO": 4,
			"GOODRA": 1,
			"JANGMOO": 3,
			"HAKAMOO": 4,
			"KOMMOO": 1,
			"DREEPY": 3,
			"DRAKLOAK": 4,
			"DRAGAPULT": 1,
			"SLIGGOO_1": 4,
			"GOODRA_1": 1,
			"FRIGIBAX": 3,
			"ARCTIBAX": 4,
			"BAXCALIBUR": 1,
			"DURALUDON": 4,
			"ARCHALUDON": 3,
			"DRAGONITE_1": 1,
			"TYRANITAR_1": 1,
			"SALAMENCE_1": 1,
			"METAGROSS_1": 1,
			"GARCHOMP_1": 1,
			"GARCHOMP_2": 1,
			"BAXCALIBUR_1": 1
		},
		Pikaclone: {
			"PICHU": 1,
			"PICHU_1": 2,
			"PICHU_2": 2,
			"PIKACHU": 1,
			"RAICHU": 1,
			"RAICHU_1": 1,
			"RAICHU_2": 2,
			"RAICHU_3": 2,
			"PIKACHU_70": 1,
			"PLUSLE": 1,
			"MINUN": 1,
			"PACHIRISU": 1,
			"EMOLGA": 1,
			"DEDENNE": 1,
			"TOGEDEMARU": 1,
			"MIMIKYU": 1,
			"MIMIKYU_1": 2,
			"MORPEKO": 1,
			"MORPEKO_1": 1,
			"PAWMI": 1,
			"PAWMO": 1,
			"PAWMOT": 1,
			"PIKACHU_2": 2,
			"PIKACHU_3": 2,
			"PIKACHU_4": 2,
			"PIKACHU_5": 2,
			"PIKACHU_6": 2,
			"PIKACHU_7": 2,
			"PIKACHU_8": 2,
			"PIKACHU_9": 2,
			"PIKACHU_10": 2,
			"PIKACHU_11": 2,
			"PIKACHU_12": 2,
			"PIKACHU_13": 2,
			"PIKACHU_14": 2,
			"PIKACHU_15": 2
		}
	}
	for(let i in alterable_arrays) {
		let a = alterable_arrays[i];
		arrays[a] = [];
		for(let k in categoryMap[a]) {
			if(MODE.SITE >= categoryMap[a][k]) {
				arrays[a].push(k);
				if(MODE.SITE == MODE.SILLY && keyToMonData(k).is_fs) {
					arrays[a].push(k+"_female");
				}
			}
		}
	}
	
	for(let g in arrays.Starter) {
		let pull_from = starterLayout[g];
		for(let p in pull_from) {
			let check = pull_from[p];
			if(typeof check == "string") {
				let mon_data = keyToMonData(check);
				addToArray(check, "Starter", g, mon_data.form_data.fs, mon_data.form_data.splice);
			}
			else if(MODE.SITE >= check[1]) {
				let mon_data = keyToMonData(check[0]);
				addToArray(check[0], "Starter", g, mon_data.form_data.fs, mon_data.form_data.splice)
			}
		}
	}
	// hsneasel female
	let sneasel = arrays.Regional.indexOf("SNEASEL_1");
	let ladySneasel = arrays.Regional.indexOf("SNEASEL_1_female");
	if(ladySneasel >= 0 && MODE.SITE < MODE.SILLY) {
		arrays.Regional.splice(ladySneasel, 1);
	}
	else if(MODE.SITE >= MODE.SILLY) {
		arrays.Regional.splice(sneasel, 1, "SNEASEL_1_female");
	}
}
let starterLayout = [
	[],
	[
		"BULBASAUR",
		"IVYSAUR",
		"VENUSAUR",
		["VENUSAUR_1", 4],
		["VENUSAUR_2", 4],
		"CHARMANDER",
		"CHARMELEON",
		"CHARIZARD",
		["CHARIZARD_1", 4],
		["CHARIZARD_2", 4],
		["CHARIZARD_3", 4],
		"SQUIRTLE",
		"WARTORTLE",
		"BLASTOISE",
		["BLASTOISE_1", 4],
		["BLASTOISE_2", 4],
		["RATTATA", 4],
		"PIKACHU",
		["PIKACHU_70", 4],
		// XD
		"EEVEE",
		["EEVEE_1", 4],
		["VAPOREON", 4],
		["JOLTEON", 4],
		["FLAREON", 4]
	],
	[
		"CHIKORITA",
		"BAYLEEF",
		"MEGANIUM",
		// ZA backadd
		["MEGANIUM_1", 4],
		"CYNDAQUIL",
		"QUILAVA",
		"TYPHLOSION",
		// PLA backadd
		["TYPHLOSION_1", 4],
		"TOTODILE",
		"CROCONAW",
		"FERALIGATR",
		["FERALIGATR_1", 4],
		// Ranger backadd
		["PICHU_2", 4],
		// Colo backadd
		["ESPEON", 4],
		["UMBREON", 4]
	],
	[
		"TREECKO",
		"GROVYLE",
		"SCEPTILE",
		["SCEPTILE_1", 4],
		"TORCHIC",
		"COMBUSKEN",
		"BLAZIKEN",
		["BLAZIKEN_1", 4],
		"MUDKIP",
		"MARSHTOMP",
		"SWAMPERT",
		["SWAMPERT_1", 4],
		// XD
		["EEVEE", 3],
		["VAPOREON", 4],
		["JOLTEON", 4],
		["FLAREON", 4],
		// Colo
		["ESPEON", 3],
		["UMBREON", 3],
		// Ranger
		["PLUSLE", 3],
		["MINUN", 3],
		// FRLG
		["BULBASAUR", 4],
		["IVYSAUR", 4],
		["VENUSAUR", 4],
		["CHARMANDER", 4],
		["CHARMELEON", 4],
		["CHARIZARD", 4],
		["SQUIRTLE", 4],
		["WARTORTLE", 4],
		["BLASTOISE", 4]
	],
	[
		"TURTWIG",
		"GROTLE",
		"TORTERRA",
		"CHIMCHAR",
		"MONFERNO",
		"INFERNAPE",
		"PIPLUP",
		"PRINPLUP",
		"EMPOLEON",
		// Ranger
		["STARLY", 3],
		["PACHIRISU", 3],
		["MUNCHLAX", 3],
		["PICHU_2", 3],
		// Rumble
		["RATTATA", 3],
		// HGSS
		["CHIKORITA", 4],
		["BAYLEEF", 4],
		["MEGANIUM", 4],
		["MEGANIUM_1", 4],
		["CYNDAQUIL", 4],
		["QUILAVA", 4],
		["TYPHLOSION", 4],
		["TYPHLOSION_1", 4],
		["TOTODILE", 4],
		["CROCONAW", 4],
		["FERALIGATR", 4],
		["FERALIGATR_1", 4]
	],
	[
		"SNIVY",
		"SERVINE",
		"SERPERIOR",
		"TEPIG",
		"PIGNITE",
		"EMBOAR",
		// ZA backadd
		["EMBOAR_1", 4],
		"OSHAWOTT",
		"DEWOTT",
		"SAMUROTT",
		// PLA back add
		["SAMUROTT_1", 4]
	],
	[
		"CHESPIN",
		"QUILLADIN",
		"CHESNAUGHT",
		["CHESNAUGHT_1", 4],
		"FENNEKIN",
		"BRAIXEN",
		"DELPHOX",
		["DELPHOX_1", 4],
		"FROAKIE",
		"FROGADIER",
		"GRENINJA",
		["GRENINJA_1", 4],
		["GRENINJA_2", 3],
		// Megas
		["VENUSAUR_1", 3],
		["CHARIZARD_1", 3],
		["CHARIZARD_2", 3],
		["BLASTOISE_1", 3],
		// oras
		["TREECKO", 4],
		["GROVYLE", 4],
		["SCEPTILE", 4],
		["SCEPTILE_1", 3],
		["TORCHIC", 4],
		["COMBUSKEN", 4],
		["BLAZIKEN", 4],
		["BLAZIKEN_1", 3],
		["MUDKIP", 4],
		["MARSHTOMP", 4],
		["SWAMPERT", 4],
		["SWAMPERT_1", 3]
	],
	[
		"ROWLET",
		"DARTRIX",
		"DECIDUEYE",
		["DECIDUEYE_1", 4],
		"LITTEN",
		"TORRACAT",
		"INCINEROAR",
		"POPPLIO",
		"BRIONNE",
		"PRIMARINA",
		// LGPE
		["PIKACHU", 3],
		["PIKACHU_70", 4],
		["EEVEE", 3],
		["EEVEE_1", 4],
		["GRENINJA_2", 3],
	],
	[
		"GROOKEY",
		"THWACKEY",
		"RILLABOOM",
		["RILLABOOM_1", 2],
		"SCORBUNNY",
		"RABOOT",
		"CINDERACE",
		["CINDERACE_1", 2],
		"SOBBLE",
		"DRIZZILE",
		"INTELEON",
		["INTELEON_1", 2],
		// PLA backadd
		["ROWLET", 3],
		["DARTRIX", 3],
		"DECIDUEYE_1",
		["CYNDAQUIL", 3],
		["QUILAVA", 3],
		"TYPHLOSION_1",
		["OSHAWOTT", 3],
		["DEWOTT", 3],
		"SAMUROTT_1",
		// other gmax
		["VENUSAUR_2", 3],
		["CHARIZARD_3", 3],
		["BLASTOISE_2", 3],
		["PIKACHU_70", 3],
		["EEVEE_1", 3],
		//BDSP
		["TURTWIG", 4],
		["GROTLE", 4],
		["TORTERRA", 4],
		["CHIMCHAR", 4],
		["MONFERNO", 4],
		["INFERNAPE", 4],
		["PIPLUP", 4],
		["PRINPLUP", 4],
		["EMPOLEON", 4]
	],
	[
		"SPRIGATITO",
		"FLORAGATO",
		"MEOWSCARADA",
		"FUECOCO",
		"CROCALOR",
		"SKELEDIRGE",
		"QUAXLY",
		"QUAXWELL",
		"QUAQUAVAL",
		// ZA
		["CHIKORITA", 3],
		["BAYLEEF", 3],
		["MEGANIUM", 3],
		"MEGANIUM_1",
		["TEPIG", 3],
		["PIGNITE", 3],
		["EMBOAR", 3],
		"EMBOAR_1",
		["TOTODILE", 3],
		["CROCONAW", 3],
		["FERALIGATR", 3],
		"FERALIGATR_1"
		// 
	]
]
let starterMap = {
	Kanto: [
		{gen: 1, mode: MODE.STRICT, tag: "Red/Blue"},
		{gen: 3, mode: MODE.SILLY, tag: "FireRed/LeafGreen"}
	],
	Kanto_Mega: [
		{gen: 1, mode: MODE.SILLY, tag: "XY"},
		{gen: 6, mode: MODE.SURPLUS, tag: "XY"}
	],
	Kanto_Gmax: [
		{gen: 1, mode: MODE.SILLY, tag: "Sword/Shield"},
		{gen: 8, mode: MODE.SURPLUS, tag: "Sword/Shield"}
	],
	Johto: [
		{gen: 2, mode: MODE.STRICT, tag: "Gold/Silver/Crystal"},
		{gen: 4, mode: MODE.SILLY, tag: "HeartGold/SoulSilver"}
	],
	Hoenn: [
		{gen: 3, mode: MODE.STRICT, tag: "Ruby/Sapphire/Emerald"},
		{gen: 6, mode: MODE.SILLY, tag: "OmegaRuby/AlphaSapphire"}
	],
	Hoenn_Mega: [
		{gen: 3, mode: MODE.SILLY, tag: "OmegaRuby/AlphaSapphire"},
		{gen: 6, mode: MODE.SURPLUS, tag: "OmegaRuby/AlphaSapphire"}
	],
	Sinnoh: [
		{gen: 4, mode: MODE.STRICT, tag: "Diamond/Pearl/Platinum"},
		{gen: 8, mode: MODE.SILLY, tag: "BrilliantDiamond/ShiningPearl"}
	],
	Unova: [
		{gen: 5, mode: MODE.STRICT, tag: "Black/White"}
	],
	Kalos: [
		{gen: 6, mode: MODE.STRICT, tag: "XY"}
	],
	Alola: [
		{gen: 7, mode: MODE.STRICT, tag: "Sun/Moon"}
	],
	Pikachu: [
		{gen: 1, mode: MODE.STRICT, tag: "Yellow/Let's Go"},
		{gen: 7, mode: MODE.SURPLUS, tag: "Let's Go Pikachu"}
	],
	Pikachu_Gmax: [
		{gen: 1, mode: MODE.SILLY, tag: "Sword/Shield"},
		{gen: 7, mode: MODE.SILLY, tag: "Sword/Shield"},
		{gen: 8, mode: MODE.SURPLUS, tag: "Sword/Shield"}
	],
	Eevee: [
		{gen: 1, mode: MODE.STRICT, tag: "Let's Go Eevee"},
		{gen: 3, mode: MODE.SURPLUS, tag: "XD: Gale of Darkness"},
		{gen: 7, mode: MODE.SURPLUS, tag: "Let's Go Eevee"}
	],
	Eevee_Gmax: [
		{gen: 1, mode: MODE.SILLY, tag: "Sword/Shield"},
		{gen: 7, mode: MODE.SILLY, tag: "Sword/Shield"},
		{gen: 8, mode: MODE.SURPLUS, tag: "Sword/Shield"}
	],
	Eeveelution: [
		{gen: 1, mode: MODE.SILLY, tag: "XD: Gale of Darkness"},
		{gen: 3, mode: MODE.SILLY, tag: "XD: Gale of Darkness"}
	],
	Orre: [
		{gen: 2, mode: MODE.SILLY, tag: "Colosseum/XD"},
		{gen: 3, mode: MODE.SURPLUS, tag: "Colosseum/XD"},
	],
	Galar: [
		{gen: 8, mode: MODE.STRICT, tag: "Sword/Shield"}
	],
	Paldea: [
		{gen: 9, mode: MODE.STRICT, tag: "Scarlet/Violet"}
	],
	Hisui: [
		{gen: 8, mode: MODE.STRICT, tag: "Legends Arceus"}
	],
	Lumiose: [
		{gen: 9, mode: MODE.STRICT, tag: "Legends Z-A"}
	],
	Hisui_prevo: [
		{gen: 8, mode: MODE.SURPLUS, tag: "Legends Arceus"}
	],
	Lumiose_prevo: [
		{gen: 9, mode: MODE.SURPLUS, tag: "Legends Z-A"}
	],
	Rumble: [
		{gen: 1, mode: MODE.SILLY, tag:"Pokemon Rumble"},
		{gen: 4, mode: MODE.SURPLUS, tag:"Pokemon Rumble"}
	],
	Ranger: [
		{gen: 3, mode: MODE.SURPLUS, tag:"Pokemon Ranger"}
	],
	Ranger2: [
		{gen: 4, mode: MODE.SURPLUS, tag:"Pokemon Ranger: Shadows of Almia"}
	],
	Ranger3: [
		{gen: 2, mode: MODE.SILLY, tag:"Pokemon Ranger: Guardian Signs"},
		{gen: 4, mode: MODE.SURPLUS, tag:"Pokemon Ranger: Guardian Signs"}
	]
}
let starterSideMap = {
	"mega": {6: "XY/ORAS", 9:"Legends Z-A"},
	"gmax": {8: "Sword/Shield"}
}
function resolveStarterSlots(form_data) {
	let slots = [];
	if(form_data.starters) {
		slots = form_data.starters;
	}
	else if(form_data.starter) {
		slots = [form_data.starter];
	}
	if(!slots.length)
		return [];
	let active_slots = [];
	for(let s in slots) {
		let table = slots[s];
		if(starterMap[table])
			table = starterMap[table];
		for(let t in table) {
			if(table[t].mode > MODE.SITE)
				continue;
			active_slots.push(table[t]);
		}
	}
	return active_slots;
}
function starterGame(mon_key, gen) {
	let mon_data = keyToMonData(mon_key);
	let form_data = mon_data.form_data;
	if(starterSideMap[form_data.kind] && starterSideMap[form_data.kind][form_data.gen])
		return starterSideMap[form_data.kind][form_data.gen];
	let slots = resolveStarterSlots(mon_data.form_data);
	if(slots.length == 0)
		return "";
	for(let s in slots) {
		if(slots[s].gen == gen) {
			return slots[s].tag;
		}
	}
	return slots[0].tag;
}
function updateMode() {
	let msel = document.getElementById("mode-select");
	let newmode = Number(msel.value);
	if(MODE.SITE == newmode)
		return;
	MODE.SITE = newmode;
	remodeArrays();
	
	let nextURL = new URL(location);
	nextURL.searchParams.delete("mode");
	if(MODE.SITE != MODE.STANDARD)
		nextURL.searchParams.set("mode", MODE.SITE);
	var nextTitle = "Ultimate Favorite Pokemon Picker";
	var nextState = { additionalInformation: 'Updated the mode parameter' };
	//document.getElementById("new_url").innerHTML = nextURL;
	//document.getElementById("new_url").href = nextURL;
	try{
		window.history.replaceState(nextState, nextTitle, nextURL);
	}catch(e){
		// unclear when this does and doesn't work
	}
}
function keyToMonData(k) {
	let splitter = k.match(/^([^_]+)(_(\d+))?(_female)?$/);
	let base = splitter[1];
	let form_n = splitter[3] || "";
	let is_fs = !!splitter[4];
	let mon = pokedex[splitter[1]];
	if(!mon)
		return keyToNonMonData(k);
	let form_data = mon;
	if(mon.forms && mon.forms[form_n])
		form_data = mon.forms[form_n];
	return {mon:mon, base_key:splitter[1], form_key:form_n, form_data:form_data, is_fs:is_fs};
}
function keyToNonMonData(k) {
	let longName = k.replace(/(.)([A-Z])/g, "$1 $2");
	let nom = {
		name: longName,
		gen: 0,
		num: 0
	}
	return {mon:nom, base_key:k, form_key:"", form_data:nom, is_fs:false}
}
function alcremieTooltip(k, has_toppings) {
	let splitter = k.match(/^([^_]+)(_(\d+))?(_female)?$/);
	let form_n = splitter[3] || "0";
	let num = Number(form_n);
	let flavor_index = Math.floor(num/7);
	let flavors = ["Vanilla Cream", "Ruby Cream", "Matcha Cream", "Mint Cream", "Lemon Cream", "Salted Cream", "Ruby Swirl", "Caramel Swirl", "Rainbow Swirl"];
	if(!has_toppings)
		return flavors[flavor_index] + " Alcremie";
	let topping_index = num%7;
	let toppings = ["Strawberry", "Berry", "Love", "Star", "Clover", "Flower", "Ribbon"];
	return flavors[flavor_index] + " Alcremie with " + toppings[topping_index] + " Sweets";
}

// jumbled up to avoid the random noise generating nasty words
var _64encode = [
	"0",
	"d","w","2","z","9","j","4","3",
	"7","M","p","q","v","x","6","b",
	"f","c","r","t","h","k","s","5",
	"g","m","8","l","1",".","_",
	
	"R",
	"D","W","T","Z","J","H","L","K",
	"n","N","P","Q","V","X","y","B",
	"F","C","e","S","u","o","E","i",
	"a","A","I","G","O","U","Y",
	"-","~"
];
var _64_NEXT_MON = _64encode[64];
var _64_NEXT_FORM = _64encode[65];
var _64_UPPERCASE = 32;
var _64_STR_RGX = new RegExp(`(${_64_NEXT_MON}{3,20}|${_64_NEXT_FORM}{3,20})`, 'g')
/*
A Pokemon is encoded by converting their dex number to ~2 digit base 64
that is, base 64 but capped at 2048 instead of 4096
this allows us to "capitalize" the first digit to denote it's using an extra form
who's key is added as a third digit. this is often but not always a literal capital, but it doesn't matter
Sneasel -> wg
Hisuian Sneasel -> WEt
_70s use _0 instead
Alcremie has one safe form left lmao

We can shortcut the next mon with - and the next form with ~
wgWEt	-> Sneasel and HSneasel in 5 characters 
wg~		-> condensed to 3
wgw5	-> Sneasel and Teddiursa in 4 characters
wg-		-> condensed to 3

If these chain 3 or more, encode them as x~/x-
0t0d0w0z090j	-> Bulbasaur-Charizard in 12 characters
0t-----			-> in 7
0t9-			-> in 4
0j0jt0jd0jw		-> Charizard, X, Y, GMax in 11
0j~~~			-> in 5
0jw~			-> in 4
Wm8~			-> all 28 unowns in 4
If this overflows, just chain them
0tY-Z-			-> the first 100 pokemon
0tY-Y-Y-n-6~F-	-> Bulbasaur-Unown-UnownZ-Celebi
For now limiting this at 20 because its not super relevant and is a wildcard for making nasty words

A Form character can never be -/~, so we can assign special cases to those instead
-0 would add the next 0 pokemon
	instead we add another character to define a special sprite
	Wg-dt -> Gold Sneasel sprite
	this is doesn't have a way to be encoded atm
~0 would add the next 0 forms
	instead we turn the pokemon into its female Form
	Wg~0 -> Female Sneasel
~t would add the next 1 form, which is worse than just ~
	instead we add another character, and use the female Form of that Form
	Wg~tt -> Female Hisuian Sneasel, the only one that uses this rn
~d would add the next 2, which is redundant with ~~
	this is unused but reserved for form overflow
	VH~dt -> Alcremie_64
-t and -d is unused
~~, --, ~-, -~ are unused

~ can be used as the first character to open a settings section
within that section, ~ is reserved as section terminator, - as parameter terminator
ex ~title-Favorite%20Dog%20Pokemon~
these parts should be compressed when possible though
ex ~Fav_Dog_Mon-g20~
g20 mapping to gen: [2, 0] or, use Gold sprites
and title expanding common words and swapping spaces to _, saving two URL characters each
assume its always there and save two characters ~- closes it if you really need it

A full line might look like
~Fav_Bat_Mon~0M-dMwc45lc-pn-q5~QRd
Zubat line, Gligar line, Woobat line, Noibat line, Lunala forms
even with two cross gen evos and the third Lunala form needing QRd instead of ~
the list gets a compression of 1.75 characters/mon which is lovely
*/
function arrayEncoder(ar) {
	let prev_mon, prev_form;
	let str = "";
	let lastPart = "";
	let controlLine = ["", 0];
	let endControlLine = false;
	for(let a in ar) {
		let mon_data = keyToMonData(ar[a]);
		str += partEncoder(mon_data.base_key, mon_data.form_key, prev_mon, prev_form, mon_data.is_fs);
		prev_mon = mon_data.base_key;
		prev_form = mon_data.form_key;
	}
	str = str.replace(_64_STR_RGX, function(_1) {
		return _64encode[_1.length] + _1[0];
	})
	return str;

/*	{
		if(part == _64_NEXT_MON) {
			if(controlLine[0] == "") {
				// see if it's worth starting
				let start_control_line = true;
				if(lastPart == "")
					start_control_line = false;
				if(lastPart.length > 2)
					start_control_line = false;
				if(start_control_line)
					controlLine = [part, 1];
			}
			else if(controlLine[0] == part) {
				controlLine[0] = part;
				controlLine[1]++;
			}
			else{
				endControlLine = true;
			}
			if(a == ar.length-1 && controlLine[1] > 0)
				endControlLine = true;
		}
		else if(controlLine[1] > 0) {
			endControlLine = true;
		}
		if(endControlLine) {
			let firstInd = _64encode.indexOf(lastPart[0]);
			if(firstInd >= _64_UPPERCASE) {
				// already a form
				// only bother at 5+
				if(controlLine[1] >= 5) {
					lastPart = lastPart.substring(0, 2) + controlLine[0] + controlLine[0] + lastPart[2] + _64encode[controlLine[1]]
				}
				else{
					for(let i=0; i<controlLine[1]; i++)
						lastPart += controlLine[0];
				}
			}else if(controlLine[1] > 2) {
				// at 3 this is useful
				lastPart = _64encode[firstInd+_64_UPPERCASE] + lastPart.substring(1);
				if(controlLine[0] == _64_NEXT_MON && controlLine[1] > 63) {
					lastPart += controlLine[0];
					while(controlLine[1] > 63) {
						lastPart += _64encode[0];
						controlLine[1] -= 63;
					}
					lastPart += _64encode[controlLine[1]];
				}else{
					lastPart += controlLine[0] + _64encode[controlLine[1]];
				}
			}else{
				// otherwise just do ~~ and let ~1 and ~2 do special things
				for(let i=0; i<controlLine[1]; i++)
					lastPart += controlLine[0];
			}
			controlLine = ["", 0];
			str += lastPart;
			if(part == _64_NEXT_MON || part == _64_NEXT_FORM) {
				if(a != ar.length-1) {
					str += part;
				}
				lastPart = "";
			}else{
				lastPart = part;
			}
		}
		else if(controlLine[1] == 0) {
			// normal string, add lastPart and cache this one
			str += lastPart;
			lastPart = part;
		}
	}
	if(lastPart)
		str += lastPart;
	*/
}
function partEncoder(mon_key, form_key, prev_mon, prev_form, female) {
	let mon = pokedex[mon_key];
	if(!mon)
		return "";
	let prev = pokedex[prev_mon];
	if(prev && mon.num == prev.num+1 && (form_key == "") && !female) {
		// shortcut with next_mon
		return _64_NEXT_MON;
	}
	if(prev && mon.num == prev.num && mon.forms && !female) {
		// can we shortcut with next form?
		let formKeys = Object.keys(mon.forms);
		let thisInd = formKeys.indexOf(form_key);
		let prevInd = formKeys.indexOf(prev_form);
		if(thisInd == prevInd+1) {
			return _64_NEXT_FORM;
		}
	}
	// convert to base 64-ish
	let second = mon.num%64;
	let first = (mon.num-second)/64;
	if(form_key != "" || female) {
		first += _64_UPPERCASE;
	}
	let core = String(_64encode[first]) + String(_64encode[second]);
	if(form_key != "") {
		let form_n = Number(form_key);
		if(form_n >= 64)
			form_n = 0;
		if(female)
			core += _64_NEXT_FORM + String(_64encode[1]);
		core += String(_64encode[form_n]);
	}
	else if(female) {
		core += _64_NEXT_FORM + String(_64encode[0]);
	}
	return core;
}
function stringDecoder(fullstring) {
	let mons = [];
	for(let c=0; c<fullstring.length; c++) {
		let last_num, last_form;
		if(mons.length) {
			[last_num, last_form] = mons[mons.length-1];
		}
		if(!last_form)
			last_form = 0;
		switch(fullstring[c]) {
			case _64_NEXT_MON:
				mons.push([last_num+1, 0]);
				break;
			case _64_NEXT_FORM:
				mons.push([last_num, Number(last_form)+1]);
				break;
			default:
				let first = fullstring[c];
				c++;
				let second = fullstring[c];
				let formChar = "";
				let female = false;
				let dnm = _64encode.indexOf(second);
				let add = _64encode.indexOf(first);
				let num = dnm + (64*add);
				let group_add_mons = 0;
				let group_add_forms = 0;
				let sprite = "";
				if(second == _64_NEXT_MON) {
					// special x- case, iterate x -
					for(let i=1; i<=add; i++) {
						mons.push([last_num+i, last_form]);
					}
					break;
				}
				if(second == _64_NEXT_FORM) {
					// special x~ case, iterate x ~
					for(let i=1; i<=add; i++) {
						mons.push([last_num, Number(last_form)+i]);
					}
					break;
				}
				if(add >= _64_UPPERCASE) {
					add -= _64_UPPERCASE;
					num = dnm + (64*add);
					c++;
					let thirdChar = fullstring[c];
					
					if(thirdChar == _64_NEXT_FORM) {
						// form controls
						c++;
						let fourthChar = fullstring[c];
						switch(fourthChar) {
							case _64encode[0]:
								// next 0 form is female instead
								female = true;
								break;
							case _64encode[1]:
								// next 1 form is subform female instead
								// consume next character for formChar
								female = true;
								c++;
								formChar = fullstring[c];
								break;
							case _64encode[2]:
								// reserved for > 64 form support
								break;
						}
					}
					else if(thirdChar == _64_NEXT_MON) {
						// adding sprite 
						c++;
						let adding = _64encode.indexOf(fullstring[c]);
						if(adding == 0) {
							// sprite
							c++
							sprite = _64encode.indexOf(fullstring[c]);;
						}
					}
					else{
						// form
						formChar = thirdChar;
					}
				}
				// add the mon here
				let formIndex = _64encode.indexOf(formChar);
				if(formIndex == 0) {
					formIndex = 70;
				}else if(formIndex < 0) {
					formIndex = "";
				}
				mons.push([num, formIndex, female, sprite]);
				for(let i=1; i<=group_add_forms; i++) {
					mons.push([num, Number(formIndex)+i]);
				}
				for(let i=1; i<=group_add_mons; i++) {
					mons.push([num+i, ""]);
				}
				break;
		}
	}
	let nums = {};
	let numKeys = [];
	for(let p in mons) {
		numKeys.push(mons[p][0]);
		let n = String(mons[p][0]);
		if(!nums[n])
			nums[n] = [];
		nums[n].push(p);
	}
	for(let p in pokedex) {
		if(!numKeys.includes(pokedex[p].num))
			continue;
		let nstr = String(pokedex[p].num);
		let mon = pokedex[p];
		for(let i in nums[nstr]) {
			let pairIndex = nums[nstr][i];
			let pair = mons[pairIndex];
			let form_n = String(pair[1]);
			if(form_n == 0 || !mon.forms) {
				// base form
				let sprite = p;
				if(pair[2] && mon.fs)
					sprite += "_female";
				mons.splice(pairIndex, 1, sprite);
			}
			else{
				let form_s = String(form_n);
				if(!mon.forms[form_s]) {
					let form_keys = Object.keys(mon.forms);
					form_s = form_keys[Number(form_s)];
				}
				let sprite = p+"_"+form_s;
				if(!form_s)
					sprite = p;
				if(pair[2] && mon.fs)
					sprite += "_female";
				mons.splice(pairIndex, 1, sprite);
			}
		}
		let index = numKeys.indexOf(mon.num);
		numKeys.splice(index, 1);
		if(numKeys.length == 0)
			break;
	}
	return mons;
}

/*
var fs = require('fs');
var cdex = require('./dex.json');
fs.writeFile("./dex2.json", JSON.stringify(cdex), () => {});
*/