{"version":3,"mappings":"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EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAAA,EACD,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MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACpBA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAUA,MAAK,SACrBA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACNA,OAAM,SACLA,MAAK,SAAU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","names":["l","n","p","q","r","t","v","w","x","y","z","A","B","C","D","E","b","e","G","H","I","K","L","M","d","c","k","h","g","f","m","N","O","a","P","Q","R","S","T","U","V","W","reactModule","require$$0","jsxRuntimeModule","u","F","J","schedulerModule","require$$1","re","reactDomModule","_extends","Action","window","createLocation","invariant","ResultType","React.createContext","React.useContext","UNSAFE_invariant","cb","React.useLayoutEffect","navigator","UNSAFE_getResolveToMatches","React.useRef","React.useCallback","React.createElement","React.Fragment","React.Component","matches","DataRouterHook","DataRouterStateHook","id","Router","React.useMemo","React","React.useState","__assign","reactIsModule","ErrorKind","TYPE","SKELETON_TYPE","el","_a","opt","startsWith","fromCodePoint","fromEntries","codePointAt","trimStart","trimEnd","matchIdentifierAtIndex","Parser","ch","ErrorCode","FormatError","InvalidValueError","InvalidValueTypeError","MissingValueError","PART_TYPE","createFastMemoizeCache","IntlMessageFormat","IntlErrorCode","IntlError","UnsupportedFormatterError","InvalidConfigError","MissingDataError","IntlFormatError","MessageFormatError","MissingTranslationError","warning","DEFAULT_INTL_CONFIG","formatMessage","getFormatter","createIntl","CORE_DEFAULT_INTL_CONFIG","React.Children","IntlProvider","DisplayName","DisplayNameParts","coreFormatMessage","coreCreateIntl","React.PureComponent","Premium_Credit_Plan","Product_ID","Get_Premium_Type","Locale","useMemo","useEffect","jsx","lazy","ReactDOM"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/index.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../node_modules/@formatjs/fast-memoize/lib/index.js","../../node_modules/intl-messageformat/lib/src/error.js","../../node_modules/intl-messageformat/lib/src/formatters.js","../../node_modules/intl-messageformat/lib/src/core.js","../../node_modules/@formatjs/intl/lib/src/error.js","../../node_modules/@formatjs/intl/lib/src/utils.js","../../node_modules/@formatjs/intl/lib/src/message.js","../../node_modules/@formatjs/intl/lib/src/dateTime.js","../../node_modules/@formatjs/intl/lib/src/displayName.js","../../node_modules/@formatjs/intl/lib/src/list.js","../../node_modules/@formatjs/intl/lib/src/plural.js","../../node_modules/@formatjs/intl/lib/src/relativeTime.js","../../node_modules/@formatjs/intl/lib/src/number.js","../../node_modules/@formatjs/intl/lib/src/create-intl.js","../../node_modules/react-intl/lib/src/utils.js","../../node_modules/react-intl/lib/src/components/injectIntl.js","../../node_modules/react-intl/lib/src/components/useIntl.js","../../node_modules/react-intl/lib/src/components/createFormattedComponent.js","../../node_modules/react-intl/lib/src/components/provider.js","../../node_modules/react-intl/lib/index.js","../../src/i18n/I18nProvider.tsx","../../src/assets/images/PDR/pdr_credit_dialogue_enu.webp","../../src/assets/images/PDR/pdr_credit_dialogue_esp.webp","../../src/assets/images/PDR/pdr_credit_dialogue_deu.webp","../../src/assets/images/PDR/pdr_credit_dialogue_fra.webp","../../src/assets/images/PDR/pdr_credit_dialogue_ita.webp","../../src/assets/images/PDR/pdr_credit_dialogue_jpn.webp","../../src/assets/images/PDR/pdr_credit_dialogue_cht.webp","../../src/assets/images/PDR/pdr_credit_dialogue_chs.webp","../../src/assets/images/PDR/pdr_credit_dialogue_kor.webp","../../src/assets/images/PDR/MAC/AI video enhancement_ENU.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_ESP.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_DEU.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_FRA.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_ITA.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_JPN.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_CHT.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_CHS.jpg","../../src/assets/images/PDR/MAC/AI video enhancement_KOR.jpg","../../src/assets/images/PHD/phd_credit_dialogue_enu.webp","../../src/assets/images/PHD/phd_credit_dialogue_esp.webp","../../src/assets/images/PHD/phd_credit_dialogue_deu.webp","../../src/assets/images/PHD/phd_credit_dialogue_fra.webp","../../src/assets/images/PHD/phd_credit_dialogue_ita.webp","../../src/assets/images/PHD/phd_credit_dialogue_jpn.webp","../../src/assets/images/PHD/phd_credit_dialogue_cht.webp","../../src/assets/images/PHD/phd_credit_dialogue_chs.webp","../../src/assets/images/PHD/phd_credit_dialogue_kor.webp","../../src/assets/images/ADR/ADR-credit-dialogue_ENU.webp","../../src/assets/images/ADR/ADR-credit-dialogue_ESP.webp","../../src/assets/images/ADR/ADR-credit-dialogue_DEU.webp","../../src/assets/images/ADR/ADR-credit-dialogue_FRA.webp","../../src/assets/images/ADR/ADR-credit-dialogue_ITA.webp","../../src/assets/images/ADR/ADR-credit-dialogue_JPN.webp","../../src/assets/images/ADR/ADR-credit-dialogue_CHT.webp","../../src/assets/images/ADR/ADR-credit-dialogue_CHS.webp","../../src/assets/images/ADR/ADR-credit-dialogue_KOR.webp","../../src/assets/images/PROMEO/promeo_enu.webp","../../src/assets/images/PROMEO/promeo_esp.webp","../../src/assets/images/PROMEO/promeo_deu.webp","../../src/assets/images/PROMEO/promeo_fra.webp","../../src/assets/images/PROMEO/promeo_ita.webp","../../src/assets/images/PROMEO/promeo_jpn.webp","../../src/assets/images/PROMEO/promeo_cht.webp","../../src/assets/images/PROMEO/promeo_chs.webp","../../src/assets/images/PROMEO/promeo_kor.webp","../../src/data/constants.ts","../../src/modules/validateAndReturnBinaryString.ts","../../src/modules/validateAndReturnLocale.ts","../../src/modules/validateAndReturnProdId.ts","../../src/pages/BasePage.tsx","../../src/Router.tsx","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.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';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname));\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches) {\n // Use the full pathname for the leaf match so we include splat values for \".\" links\n return getPathContributingMatches(matches).map((match, idx) => idx === matches.length - 1 ? match.pathname : match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else if (isPathRelative) {\n let fromSegments = routePathnames[routePathnames.length - 1].replace(/^\\//, \"\").split(\"/\");\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n // With relative=\"path\", each leading .. segment means \"go up one URL segment\"\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n fromSegments.pop();\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = \"/\" + fromSegments.join(\"/\");\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_prependBasename: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some(m => m.route.lazy) && (\n // And we have to either have no loaders or have been provided hydrationData\n !initialMatches.some(m => m.route.loader) || init.hydrationData != null);\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location);\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace,\n flushSync\n });\n if (actionOutput.shortCircuited) {\n return;\n }\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // Create a GET request for the loaders\n request = new Request(request.url, {\n signal: request.signal\n });\n }\n // Call loaders\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, flushSync, pendingActionData, pendingError);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, flushSync, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, flushSync, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, flushSync, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, mapRouteProperties, basename);\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n );\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, mapRouteProperties, basename);\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(state, redirect, _temp2) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true\n });\n invariant(redirectLocation, \"Expected a location on the redirect navigation\");\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, f.controller.signal), f.match, f.matches, manifest, mapRouteProperties, basename);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(request, _temp3) {\n let {\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n });\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n });\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n }))]);\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\nasync function callLoaderOrAction(type, request, match, matches, manifest, mapRouteProperties, basename, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let resultType;\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: opts.requestContext\n }), abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n data: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n if (isResponse(result)) {\n let status = result.status;\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(new URL(request.url), matches.slice(0, matches.indexOf(match) + 1), basename, true, location);\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null\n };\n }\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse = {\n type: resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result\n };\n throw queryRouteResponse;\n }\n let data;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = errors || {};\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds);\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || obj.type === ResultType.error);\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.20.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, resolvePath } from '@remix-run/router';\n\nfunction _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 for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState) {\n var _dataRouterState2;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (matches == null) {\n var _dataRouterState;\n if ((_dataRouterState = dataRouterState) != null && _dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors == null ? void 0 : errors[match.route.id] : null;\n // Only data routers handle errors\n let errorElement = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a