@worktango/ai-assistant 0.0.10 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Absenteeism-7Gs_erw2.mjs +50 -0
- package/dist/Absenteeism-7Gs_erw2.mjs.map +1 -0
- package/dist/ActivityFeed-DuazxfhN.mjs +42 -0
- package/dist/ActivityFeed-DuazxfhN.mjs.map +1 -0
- package/dist/AddUser-lPVF3eHr.mjs +129 -0
- package/dist/AddUser-lPVF3eHr.mjs.map +1 -0
- package/dist/Admin-CFD4HaFd.mjs +71 -0
- package/dist/Admin-CFD4HaFd.mjs.map +1 -0
- package/dist/Admin-CuY7Yvav.mjs +56 -0
- package/dist/Admin-CuY7Yvav.mjs.map +1 -0
- package/dist/Anniversary-BhcDmv9Q.mjs +36 -0
- package/dist/Anniversary-BhcDmv9Q.mjs.map +1 -0
- package/dist/Appreciation-BE6ZvQBy.mjs +56 -0
- package/dist/Appreciation-BE6ZvQBy.mjs.map +1 -0
- package/dist/ArrowDown-BLq_oPxt.mjs +39 -0
- package/dist/ArrowDown-BLq_oPxt.mjs.map +1 -0
- package/dist/ArrowLeft-C-azazP_.mjs +13 -0
- package/dist/ArrowLeft-C-azazP_.mjs.map +1 -0
- package/dist/ArrowRight-DeKwwI8m.mjs +13 -0
- package/dist/ArrowRight-DeKwwI8m.mjs.map +1 -0
- package/dist/ArrowUp-B_w_Oxhm.mjs +32 -0
- package/dist/ArrowUp-B_w_Oxhm.mjs.map +1 -0
- package/dist/Attachment-B7WAliuS.mjs +21 -0
- package/dist/Attachment-B7WAliuS.mjs.map +1 -0
- package/dist/BeQuickDontHurry-atcgb9Xu.mjs +95 -0
- package/dist/BeQuickDontHurry-atcgb9Xu.mjs.map +1 -0
- package/dist/Birthday-BWim54dP.mjs +67 -0
- package/dist/Birthday-BWim54dP.mjs.map +1 -0
- package/dist/BrandPromise-DmPpBeHy.mjs +58 -0
- package/dist/BrandPromise-DmPpBeHy.mjs.map +1 -0
- package/dist/BrandVision-DPDGBoG5.mjs +97 -0
- package/dist/BrandVision-DPDGBoG5.mjs.map +1 -0
- package/dist/Calendar-Dp1ZSfxe.mjs +25 -0
- package/dist/Calendar-Dp1ZSfxe.mjs.map +1 -0
- package/dist/CaretDn-CQSCmFY8.mjs +12 -0
- package/dist/CaretDn-CQSCmFY8.mjs.map +1 -0
- package/dist/CaretDown-l4oLVLlU.mjs +6 -0
- package/dist/CaretDown-l4oLVLlU.mjs.map +1 -0
- package/dist/CaretLeft-BDXMl4WZ.mjs +12 -0
- package/dist/CaretLeft-BDXMl4WZ.mjs.map +1 -0
- package/dist/CaretRight-CJQYVTQd.mjs +12 -0
- package/dist/CaretRight-CJQYVTQd.mjs.map +1 -0
- package/dist/CaretUp--nINqc-_.mjs +12 -0
- package/dist/CaretUp--nINqc-_.mjs.map +1 -0
- package/dist/ChallengeAccepted-BYA78RHO.mjs +50 -0
- package/dist/ChallengeAccepted-BYA78RHO.mjs.map +1 -0
- package/dist/CheckIn-D6VWsa-S.mjs +35 -0
- package/dist/CheckIn-D6VWsa-S.mjs.map +1 -0
- package/dist/CheckIns-hkLDKD98.mjs +34 -0
- package/dist/CheckIns-hkLDKD98.mjs.map +1 -0
- package/dist/CheckSeal-hhIDr7iO.mjs +32 -0
- package/dist/CheckSeal-hhIDr7iO.mjs.map +1 -0
- package/dist/Checkmark-BZ5HE4Q0.mjs +17 -0
- package/dist/Checkmark-BZ5HE4Q0.mjs.map +1 -0
- package/dist/Clock-DF0LubAT.mjs +34 -0
- package/dist/Clock-DF0LubAT.mjs.map +1 -0
- package/dist/Close-DBhiw4c7.mjs +13 -0
- package/dist/Close-DBhiw4c7.mjs.map +1 -0
- package/dist/CloudDownload-K84OaP4w.mjs +41 -0
- package/dist/CloudDownload-K84OaP4w.mjs.map +1 -0
- package/dist/Comment-BumOC2C2.mjs +168 -0
- package/dist/Comment-BumOC2C2.mjs.map +1 -0
- package/dist/Comments-vnUbOAz5.mjs +49 -0
- package/dist/Comments-vnUbOAz5.mjs.map +1 -0
- package/dist/Connections-BT9moCvJ.mjs +50 -0
- package/dist/Connections-BT9moCvJ.mjs.map +1 -0
- package/dist/Copy-Bx6E6-R1.mjs +73 -0
- package/dist/Copy-Bx6E6-R1.mjs.map +1 -0
- package/dist/CustomQuestion-BKvZw37z.mjs +41 -0
- package/dist/CustomQuestion-BKvZw37z.mjs.map +1 -0
- package/dist/CustomerSuccess-DGsHmabI.mjs +51 -0
- package/dist/CustomerSuccess-DGsHmabI.mjs.map +1 -0
- package/dist/DatePicker-BTio7Tsc.mjs +2234 -0
- package/dist/DatePicker-BTio7Tsc.mjs.map +1 -0
- package/dist/Dot-DMoUVCHa.mjs +13 -0
- package/dist/Dot-DMoUVCHa.mjs.map +1 -0
- package/dist/Download-IwuDaKG7.mjs +39 -0
- package/dist/Download-IwuDaKG7.mjs.map +1 -0
- package/dist/Drag-B_4gw4Df.mjs +42 -0
- package/dist/Drag-B_4gw4Df.mjs.map +1 -0
- package/dist/Earn-MtOZzPga.mjs +16 -0
- package/dist/Earn-MtOZzPga.mjs.map +1 -0
- package/dist/Email-BOku4UIH.mjs +25 -0
- package/dist/Email-BOku4UIH.mjs.map +1 -0
- package/dist/EmojiDisplay-DDIW5qr0.mjs +39051 -0
- package/dist/EmojiDisplay-DDIW5qr0.mjs.map +1 -0
- package/dist/EmojiPicker-slr7ZkAb.mjs +29642 -0
- package/dist/EmojiPicker-slr7ZkAb.mjs.map +1 -0
- package/dist/EnpsSurvey-C4tUXQLS.mjs +50 -0
- package/dist/EnpsSurvey-C4tUXQLS.mjs.map +1 -0
- package/dist/Expired-Cxgxsg15.mjs +34 -0
- package/dist/Expired-Cxgxsg15.mjs.map +1 -0
- package/dist/Eye-DPfWtwYx.mjs +28 -0
- package/dist/Eye-DPfWtwYx.mjs.map +1 -0
- package/dist/Feedback-CiwT30u5.mjs +50 -0
- package/dist/Feedback-CiwT30u5.mjs.map +1 -0
- package/dist/Feedback-Cq5U0ElI.mjs +42 -0
- package/dist/Feedback-Cq5U0ElI.mjs.map +1 -0
- package/dist/Filter-ng7gV45A.mjs +65 -0
- package/dist/Filter-ng7gV45A.mjs.map +1 -0
- package/dist/Flag-CRiwOnsK.mjs +36 -0
- package/dist/Flag-CRiwOnsK.mjs.map +1 -0
- package/dist/Giphy-CdZx8lX_.mjs +25 -0
- package/dist/Giphy-CdZx8lX_.mjs.map +1 -0
- package/dist/GoalCount-Bq2ohKIN.mjs +11 -0
- package/dist/GoalCount-Bq2ohKIN.mjs.map +1 -0
- package/dist/GoalPercent-DilSSo6H.mjs +22 -0
- package/dist/GoalPercent-DilSSo6H.mjs.map +1 -0
- package/dist/GoalTask-B_0zxq_q.mjs +21 -0
- package/dist/GoalTask-B_0zxq_q.mjs.map +1 -0
- package/dist/GoalTask-DYZc_zsQ.mjs +43 -0
- package/dist/GoalTask-DYZc_zsQ.mjs.map +1 -0
- package/dist/Goals-BRfG_eTA.mjs +80 -0
- package/dist/Goals-BRfG_eTA.mjs.map +1 -0
- package/dist/Goals-quJ1BrNc.mjs +71 -0
- package/dist/Goals-quJ1BrNc.mjs.map +1 -0
- package/dist/Growth-wt2XFeov.mjs +86 -0
- package/dist/Growth-wt2XFeov.mjs.map +1 -0
- package/dist/Hamburger-D-VOnMXq.mjs +10 -0
- package/dist/Hamburger-D-VOnMXq.mjs.map +1 -0
- package/dist/Help-D1zYAS_Y.mjs +37 -0
- package/dist/Help-D1zYAS_Y.mjs.map +1 -0
- package/dist/HighFive-CkPFrOKP.mjs +39 -0
- package/dist/HighFive-CkPFrOKP.mjs.map +1 -0
- package/dist/HighFive-CyW1fu8C.mjs +34 -0
- package/dist/HighFive-CyW1fu8C.mjs.map +1 -0
- package/dist/Home-DU7RaENv.mjs +22 -0
- package/dist/Home-DU7RaENv.mjs.map +1 -0
- package/dist/Home-LlGF7WI6.mjs +32 -0
- package/dist/Home-LlGF7WI6.mjs.map +1 -0
- package/dist/HorizontalLine-Tajsh1YU.mjs +18 -0
- package/dist/HorizontalLine-Tajsh1YU.mjs.map +1 -0
- package/dist/Hourglass-DdY4OqH0.mjs +54 -0
- package/dist/Hourglass-DdY4OqH0.mjs.map +1 -0
- package/dist/Image-BmQwZk4m.mjs +44 -0
- package/dist/Image-BmQwZk4m.mjs.map +1 -0
- package/dist/ImageFile-C4OONOqN.mjs +61 -0
- package/dist/ImageFile-C4OONOqN.mjs.map +1 -0
- package/dist/InGoodCompany-BV6BWOht.mjs +34 -0
- package/dist/InGoodCompany-BV6BWOht.mjs.map +1 -0
- package/dist/Incentives-t0gbkmXB.mjs +156 -0
- package/dist/Incentives-t0gbkmXB.mjs.map +1 -0
- package/dist/Info-Dx89YJDW.mjs +32 -0
- package/dist/Info-Dx89YJDW.mjs.map +1 -0
- package/dist/Insights-B6xQGdzP.mjs +42 -0
- package/dist/Insights-B6xQGdzP.mjs.map +1 -0
- package/dist/Insights-CwJhTGO7.mjs +21 -0
- package/dist/Insights-CwJhTGO7.mjs.map +1 -0
- package/dist/Integrations-CkiA29Oq.mjs +34 -0
- package/dist/Integrations-CkiA29Oq.mjs.map +1 -0
- package/dist/KazooLogo-D_I-adDw.mjs +39 -0
- package/dist/KazooLogo-D_I-adDw.mjs.map +1 -0
- package/dist/KnowYourAudience-Dd8PY8K-.mjs +92 -0
- package/dist/KnowYourAudience-Dd8PY8K-.mjs.map +1 -0
- package/dist/Launch-CezCFTz4.mjs +84 -0
- package/dist/Launch-CezCFTz4.mjs.map +1 -0
- package/dist/Link-CEk3WGeb.mjs +26 -0
- package/dist/Link-CEk3WGeb.mjs.map +1 -0
- package/dist/LinkArrow-BODhbQWM.mjs +13 -0
- package/dist/LinkArrow-BODhbQWM.mjs.map +1 -0
- package/dist/Loading-AqOvlruO.mjs +7 -0
- package/dist/Loading-AqOvlruO.mjs.map +1 -0
- package/dist/Lock-Es7k_qNN.mjs +32 -0
- package/dist/Lock-Es7k_qNN.mjs.map +1 -0
- package/dist/Management-D9ld9PcM.mjs +88 -0
- package/dist/Management-D9ld9PcM.mjs.map +1 -0
- package/dist/MeatballMenu-CE6Jn0nH.mjs +10 -0
- package/dist/MeatballMenu-CE6Jn0nH.mjs.map +1 -0
- package/dist/Messages-RmwaOSr_.mjs +222 -0
- package/dist/Messages-RmwaOSr_.mjs.map +1 -0
- package/dist/Mobile-CsvBmB9_.mjs +32 -0
- package/dist/Mobile-CsvBmB9_.mjs.map +1 -0
- package/dist/Nomination-D85YwP0v.mjs +13 -0
- package/dist/Nomination-D85YwP0v.mjs.map +1 -0
- package/dist/NominationsAndAwards-CGGJcSk3.mjs +58 -0
- package/dist/NominationsAndAwards-CGGJcSk3.mjs.map +1 -0
- package/dist/Notification-B-nAosyw.mjs +29 -0
- package/dist/Notification-B-nAosyw.mjs.map +1 -0
- package/dist/Okrs-CVV3GvdL.mjs +56 -0
- package/dist/Okrs-CVV3GvdL.mjs.map +1 -0
- package/dist/PeerToPeer-CSZKxwG1.mjs +65 -0
- package/dist/PeerToPeer-CSZKxwG1.mjs.map +1 -0
- package/dist/Pencil-BsnTrKOH.mjs +26 -0
- package/dist/Pencil-BsnTrKOH.mjs.map +1 -0
- package/dist/People-LAxio-dJ.mjs +44 -0
- package/dist/People-LAxio-dJ.mjs.map +1 -0
- package/dist/PerformanceManagement-DJpvKVj-.mjs +58 -0
- package/dist/PerformanceManagement-DJpvKVj-.mjs.map +1 -0
- package/dist/Pin-BC5ynEKy.mjs +25 -0
- package/dist/Pin-BC5ynEKy.mjs.map +1 -0
- package/dist/PinnedIconAward-Cm7IGMOd.mjs +21 -0
- package/dist/PinnedIconAward-Cm7IGMOd.mjs.map +1 -0
- package/dist/PinnedIconBrightIdea-DUancqH1.mjs +21 -0
- package/dist/PinnedIconBrightIdea-DUancqH1.mjs.map +1 -0
- package/dist/PinnedIconBullseye-BTmTduJC.mjs +21 -0
- package/dist/PinnedIconBullseye-BTmTduJC.mjs.map +1 -0
- package/dist/PinnedIconChampagne-A_WMKfKh.mjs +21 -0
- package/dist/PinnedIconChampagne-A_WMKfKh.mjs.map +1 -0
- package/dist/PinnedIconCheer-BI-hbYQ6.mjs +21 -0
- package/dist/PinnedIconCheer-BI-hbYQ6.mjs.map +1 -0
- package/dist/PinnedIconCrown-CVWq1X51.mjs +21 -0
- package/dist/PinnedIconCrown-CVWq1X51.mjs.map +1 -0
- package/dist/PinnedIconDiamond-cnfGwjos.mjs +21 -0
- package/dist/PinnedIconDiamond-cnfGwjos.mjs.map +1 -0
- package/dist/PinnedIconHoleInOne-BHDdCE_P.mjs +21 -0
- package/dist/PinnedIconHoleInOne-BHDdCE_P.mjs.map +1 -0
- package/dist/PinnedIconMedal-DMvo7Jh5.mjs +21 -0
- package/dist/PinnedIconMedal-DMvo7Jh5.mjs.map +1 -0
- package/dist/PinnedIconMetrics-CBojgtHK.mjs +21 -0
- package/dist/PinnedIconMetrics-CBojgtHK.mjs.map +1 -0
- package/dist/PinnedIconPin-7xRvtx1U.mjs +21 -0
- package/dist/PinnedIconPin-7xRvtx1U.mjs.map +1 -0
- package/dist/PinnedIconRockAndRoll-BHk01tjl.mjs +24 -0
- package/dist/PinnedIconRockAndRoll-BHk01tjl.mjs.map +1 -0
- package/dist/PinnedIconRocket-DliZwypm.mjs +43 -0
- package/dist/PinnedIconRocket-DliZwypm.mjs.map +1 -0
- package/dist/PinnedIconStrength-BmqsA7U3.mjs +21 -0
- package/dist/PinnedIconStrength-BmqsA7U3.mjs.map +1 -0
- package/dist/PinnedIconTeddyBear-B5QZGR8E.mjs +21 -0
- package/dist/PinnedIconTeddyBear-B5QZGR8E.mjs.map +1 -0
- package/dist/PlatformLogo-CbiJ6ufj.mjs +58 -0
- package/dist/PlatformLogo-CbiJ6ufj.mjs.map +1 -0
- package/dist/Plus-D2q0SuWG.mjs +20 -0
- package/dist/Plus-D2q0SuWG.mjs.map +1 -0
- package/dist/Popper-CldJz3kh.mjs +1119 -0
- package/dist/Popper-CldJz3kh.mjs.map +1 -0
- package/dist/PrivateEye-BDop61Nf.mjs +128 -0
- package/dist/PrivateEye-BDop61Nf.mjs.map +1 -0
- package/dist/PrivatePushPin-Cg4KGCVE.mjs +34 -0
- package/dist/PrivatePushPin-Cg4KGCVE.mjs.map +1 -0
- package/dist/Processing-BCjDKEIW.mjs +81 -0
- package/dist/Processing-BCjDKEIW.mjs.map +1 -0
- package/dist/Productivity-CmzxtvXS.mjs +42 -0
- package/dist/Productivity-CmzxtvXS.mjs.map +1 -0
- package/dist/ProgressCircle-Dcx-v9hY.mjs +13 -0
- package/dist/ProgressCircle-Dcx-v9hY.mjs.map +1 -0
- package/dist/PulseSurvey-Ctifzprv.mjs +49 -0
- package/dist/PulseSurvey-Ctifzprv.mjs.map +1 -0
- package/dist/PushPin-DelVFawh.mjs +19 -0
- package/dist/PushPin-DelVFawh.mjs.map +1 -0
- package/dist/Recognition-CR1J6dFF.mjs +77 -0
- package/dist/Recognition-CR1J6dFF.mjs.map +1 -0
- package/dist/Recognition-Qa7rYllI.mjs +39 -0
- package/dist/Recognition-Qa7rYllI.mjs.map +1 -0
- package/dist/Retention-PqCQ89y9.mjs +48 -0
- package/dist/Retention-PqCQ89y9.mjs.map +1 -0
- package/dist/Rewards-CpIRfzG-.mjs +68 -0
- package/dist/Rewards-CpIRfzG-.mjs.map +1 -0
- package/dist/Rewards-DLN6Mzco.mjs +55 -0
- package/dist/Rewards-DLN6Mzco.mjs.map +1 -0
- package/dist/RewardsCatalog-DiKrTWRV.mjs +50 -0
- package/dist/RewardsCatalog-DiKrTWRV.mjs.map +1 -0
- package/dist/Roadmap-e9HLXXzk.mjs +123 -0
- package/dist/Roadmap-e9HLXXzk.mjs.map +1 -0
- package/dist/Search-dTTWBwcU.mjs +15 -0
- package/dist/Search-dTTWBwcU.mjs.map +1 -0
- package/dist/Security-PY-v0SYe.mjs +34 -0
- package/dist/Security-PY-v0SYe.mjs.map +1 -0
- package/dist/SendRecognition-Bbf-GQXN.mjs +6 -0
- package/dist/SendRecognition-Bbf-GQXN.mjs.map +1 -0
- package/dist/ShareLink-BS6ng4md.mjs +28 -0
- package/dist/ShareLink-BS6ng4md.mjs.map +1 -0
- package/dist/Skill-D0hjjjF2.mjs +24 -0
- package/dist/Skill-D0hjjjF2.mjs.map +1 -0
- package/dist/Skills-BfG4y3Qy.mjs +69 -0
- package/dist/Skills-BfG4y3Qy.mjs.map +1 -0
- package/dist/Smiley-DzL7V8pR.mjs +46 -0
- package/dist/Smiley-DzL7V8pR.mjs.map +1 -0
- package/dist/Stop-CWtEw7Sm.mjs +179 -0
- package/dist/Stop-CWtEw7Sm.mjs.map +1 -0
- package/dist/Survey-B2WonI84.mjs +60 -0
- package/dist/Survey-B2WonI84.mjs.map +1 -0
- package/dist/Surveys-ZEd2rBZJ.mjs +55 -0
- package/dist/Surveys-ZEd2rBZJ.mjs.map +1 -0
- package/dist/SyncUps-CtlsjNJH.mjs +31 -0
- package/dist/SyncUps-CtlsjNJH.mjs.map +1 -0
- package/dist/Syncs-BrEkBC8A.mjs +30 -0
- package/dist/Syncs-BrEkBC8A.mjs.map +1 -0
- package/dist/TalentReview-BODN6iw5.mjs +34 -0
- package/dist/TalentReview-BODN6iw5.mjs.map +1 -0
- package/dist/TalentReview-DP7Dw0pp.mjs +89 -0
- package/dist/TalentReview-DP7Dw0pp.mjs.map +1 -0
- package/dist/TalentReviewInsights-DXmeWWwp.mjs +101 -0
- package/dist/TalentReviewInsights-DXmeWWwp.mjs.map +1 -0
- package/dist/TaskCompleted-Eaw1Y95k.mjs +98 -0
- package/dist/TaskCompleted-Eaw1Y95k.mjs.map +1 -0
- package/dist/Team-BE1DWzLa.mjs +64 -0
- package/dist/Team-BE1DWzLa.mjs.map +1 -0
- package/dist/Teams-C8AfEtyC.mjs +81 -0
- package/dist/Teams-C8AfEtyC.mjs.map +1 -0
- package/dist/TextBold-BJVqCsh0.mjs +72 -0
- package/dist/TextBold-BJVqCsh0.mjs.map +1 -0
- package/dist/TextBulletList-CP7NUFCQ.mjs +129 -0
- package/dist/TextBulletList-CP7NUFCQ.mjs.map +1 -0
- package/dist/TextInput-B5K7XrsN.mjs +122 -0
- package/dist/TextInput-B5K7XrsN.mjs.map +1 -0
- package/dist/TextItalic-CE2MDuSp.mjs +72 -0
- package/dist/TextItalic-CE2MDuSp.mjs.map +1 -0
- package/dist/TextNumberList-CVfsSlvi.mjs +148 -0
- package/dist/TextNumberList-CVfsSlvi.mjs.map +1 -0
- package/dist/TextUnderline-BBL5WFrr.mjs +91 -0
- package/dist/TextUnderline-BBL5WFrr.mjs.map +1 -0
- package/dist/Toggle-Cn0ZGhJu.mjs +77 -0
- package/dist/Toggle-Cn0ZGhJu.mjs.map +1 -0
- package/dist/Trash-DozlAFMK.mjs +45 -0
- package/dist/Trash-DozlAFMK.mjs.map +1 -0
- package/dist/TrendDown-Cr5fsUbq.mjs +6 -0
- package/dist/TrendDown-Cr5fsUbq.mjs.map +1 -0
- package/dist/TrendUp-Bb6kBUvO.mjs +6 -0
- package/dist/TrendUp-Bb6kBUvO.mjs.map +1 -0
- package/dist/Unplugged-BT-pmP6D.mjs +202 -0
- package/dist/Unplugged-BT-pmP6D.mjs.map +1 -0
- package/dist/UpDownCaret-Cjm-R0h_.mjs +13 -0
- package/dist/UpDownCaret-Cjm-R0h_.mjs.map +1 -0
- package/dist/VerticalLine-DRIH_cCj.mjs +51 -0
- package/dist/VerticalLine-DRIH_cCj.mjs.map +1 -0
- package/dist/Warning-ChUIfgt3.mjs +38 -0
- package/dist/Warning-ChUIfgt3.mjs.map +1 -0
- package/dist/WarningNoOutline-BiYPsHjH.mjs +42 -0
- package/dist/WarningNoOutline-BiYPsHjH.mjs.map +1 -0
- package/dist/YesAnd-BBX1e04v.mjs +32 -0
- package/dist/YesAnd-BBX1e04v.mjs.map +1 -0
- package/dist/ai-assistant.css +1 -1
- package/dist/emoji-B1olZvTU.mjs +2311 -0
- package/dist/emoji-B1olZvTU.mjs.map +1 -0
- package/dist/react-D5bElbFy.mjs +11923 -0
- package/dist/react-D5bElbFy.mjs.map +1 -0
- package/dist/react.es.js +5 -0
- package/dist/react.es.js.map +1 -0
- package/dist/react.umd.js +39 -246
- package/dist/react.umd.js.map +1 -1
- package/package.json +8 -1
- package/react.js +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-D5bElbFy.mjs","sources":["../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../confetti/src/styles/branding.ts","../../confetti/src/styles/branding-utilities.js","../../types/index.ts","../../../node_modules/dayjs/dayjs.min.js","../../../node_modules/dayjs/plugin/relativeTime.js","../../helpers/src/relativeTime.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/pascal-case/node_modules/lower-case/dist.es2015/index.js","../../../node_modules/pascal-case/node_modules/no-case/dist.es2015/index.js","../../../node_modules/pascal-case/dist.es2015/index.js","../../../node_modules/camel-case/dist.es2015/index.js","../../../node_modules/capital-case/node_modules/lower-case/dist.es2015/index.js","../../../node_modules/capital-case/node_modules/no-case/dist.es2015/index.js","../../../node_modules/upper-case-first/dist.es2015/index.js","../../../node_modules/capital-case/dist.es2015/index.js","../../../node_modules/constant-case/node_modules/lower-case/dist.es2015/index.js","../../../node_modules/constant-case/node_modules/no-case/dist.es2015/index.js","../../../node_modules/constant-case/node_modules/upper-case/dist.es2015/index.js","../../../node_modules/constant-case/dist.es2015/index.js","../../../node_modules/dot-case/node_modules/lower-case/dist.es2015/index.js","../../../node_modules/dot-case/node_modules/no-case/dist.es2015/index.js","../../../node_modules/dot-case/dist.es2015/index.js","../../../node_modules/header-case/dist.es2015/index.js","../../../node_modules/change-case-all/node_modules/lower-case/dist.es2015/index.js","../../../node_modules/change-case-all/node_modules/no-case/dist.es2015/index.js","../../../node_modules/param-case/dist.es2015/index.js","../../../node_modules/path-case/dist.es2015/index.js","../../../node_modules/sentence-case/node_modules/lower-case/dist.es2015/index.js","../../../node_modules/sentence-case/node_modules/no-case/dist.es2015/index.js","../../../node_modules/sentence-case/dist.es2015/index.js","../../../node_modules/snake-case/dist.es2015/index.js","../../../node_modules/lower-case-first/dist.es2015/index.js","../../../node_modules/sponge-case/dist.es2015/index.js","../../../node_modules/swap-case/dist.es2015/index.js","../../../node_modules/title-case/dist.es2015/index.js","../../../node_modules/change-case-all/node_modules/upper-case/dist.es2015/index.js","../../../node_modules/is-upper-case/dist.es2015/index.js","../../../node_modules/is-lower-case/dist.es2015/index.js","../../../node_modules/change-case-all/dist/index.js","../../helpers/src/doNothing.ts","../../helpers/src/setState.ts","../../helpers/src/setStateValue.ts","../../../node_modules/dayjs/plugin/timezone.js","../../../node_modules/dayjs/plugin/utc.js","../../helpers/src/dates/dateParsers.ts","../../helpers/src/coalesce.ts","../../helpers/src/DateTimeWrapper.ts","../../../node_modules/classnames/index.js","../../confetti/src/components/Header/Header.jsx","../../confetti/src/components/Text/Text.tsx","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/cjs/react-is.development.js","../../../node_modules/react-is/index.js","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/@loadable/component/dist/loadable.esm.js","../../confetti/src/helpers/asyncComponent.ts","../../confetti/src/components/Icon/IconMap.tsx","../../confetti/src/components/Icon/IconTypes.tsx","../../confetti/src/components/Icon/Icon.tsx","../../confetti/src/components/Loader/Loader.tsx","../../confetti/src/components/Grid/Spacer.tsx","../../confetti/src/components/Card/Card.tsx","../../confetti/src/components/Button/Button.tsx","../../confetti/src/components/IconButton/IconButton.tsx","../../confetti/src/components/Popper/PopperAsync.tsx","../../confetti/src/components/TabIndexVisibility/TabIndexVisibility.tsx","../../confetti/src/components/Popover/Popover.tsx","../../confetti/src/components/DatePicker/DatePickerAsync.jsx","../../confetti/src/components/Illustration/IllustrationMap.tsx","../../confetti/src/components/Illustration/LegacyIllustrations/index.ts","../../../node_modules/object-assign/index.js","../../../node_modules/react-modal/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/react-modal/node_modules/prop-types/lib/has.js","../../../node_modules/react-modal/node_modules/prop-types/checkPropTypes.js","../../../node_modules/react-modal/node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/react-modal/node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/react-modal/node_modules/prop-types/index.js","../../../node_modules/react-modal/lib/helpers/tabbable.js","../../../node_modules/react-modal/lib/helpers/focusManager.js","../../../node_modules/react-modal/lib/helpers/scopeTab.js","../../../node_modules/warning/warning.js","../../../node_modules/exenv/index.js","../../../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../../node_modules/react-modal/lib/helpers/ariaAppHider.js","../../../node_modules/react-modal/lib/helpers/classList.js","../../../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../../../node_modules/react-modal/lib/helpers/bodyTrap.js","../../../node_modules/react-modal/lib/components/ModalPortal.js","../../../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../../../node_modules/react-modal/lib/components/Modal.js","../../../node_modules/react-modal/lib/index.js","../../confetti/src/helpers/onBrowser.ts","../../confetti/src/components/ProfilePic/ProfilePic.tsx","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/inherits.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/invariant/browser.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/react-mentions/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../node_modules/substyle/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/substyle/es6/utils.js","../../../node_modules/substyle/es6/filterKeys.js","../../../node_modules/substyle/es6/pickStyles.js","../../../node_modules/substyle/es6/defaultPropsDecorator.js","../../../node_modules/substyle/es6/PropsDecoratorProvider.js","../../../node_modules/substyle/es6/coerceSelection.js","../../../node_modules/substyle/es6/memoize.js","../../../node_modules/substyle/es6/createSubstyle.js","../../../node_modules/substyle/es6/inline.js","../../../node_modules/substyle/es6/useStyles.js","../../../node_modules/react-mentions/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/react-mentions/node_modules/prop-types/lib/has.js","../../../node_modules/react-mentions/node_modules/prop-types/checkPropTypes.js","../../../node_modules/react-mentions/node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/react-mentions/node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/react-mentions/node_modules/prop-types/index.js","../../../node_modules/react-mentions/dist/react-mentions.esm.js","../../confetti/src/helpers/useUIDSeed.ts","../../confetti/src/components/Tooltip/QuestionMarkTooltipIcon.jsx","../../confetti/src/components/Tooltip/TooltipContent.jsx","../../confetti/src/components/Tooltip/Tooltip.jsx","../../confetti/src/components/ControlWrapper/ControlWrapper.tsx","../../confetti/src/components/TextArea/TextAreaMentionSuggestion.tsx","../../confetti/src/components/TextArea/TextArea.tsx","../../confetti/src/components/Checkbox/Checkbox.tsx","../../../node_modules/lodash.isempty/index.js","../../confetti/src/components/Divider/Divider.tsx","../../confetti/src/components/EmojiPicker/EmojiPickerAsync.ts","../../confetti/src/components/EmojiPicker/EmojiDisplayAsync.ts","../../confetti/src/components/EmployeeList/EmployeeList.tsx","../../confetti/src/helpers/useBlurHandlers.ts","../../../node_modules/react-text-mask/dist/reactTextMask.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../../confetti/src/components/Autocomplete/Autocomplete.jsx","../../../node_modules/lodash.omit/index.js","../../confetti/src/components/MultiSelect/MultiSelectItem.js","../../confetti/src/components/MultiSelect/MultiSelectInput.jsx","../../confetti/src/components/Pill/Pill.tsx","../../confetti/src/components/MultiSelect/MultiSelectPill.jsx","../../confetti/src/helpers/escapeRegex.ts","../../confetti/src/components/MultiSelect/NestedItem.jsx","../../confetti/src/components/MultiSelect/MultiSelectSuggestion.jsx","../../confetti/src/components/MultiSelect/MultiSelect.jsx","../../../node_modules/dayjs/plugin/isToday.js","../../confetti/src/components/TimeInput/helpers.js","../../confetti/src/components/TimeInput/TimeInput.jsx","../../confetti/src/components/Toast/ToastProvider.tsx","../../confetti/src/components/StatusBarChart/ChartContext.jsx","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../confetti/src/components/StandardBarChart/ChartContext.tsx","../src/frontend/components/AiAssistantComponent.tsx","../src/frontend/useStyles.ts","../src/frontend/AiAssistant.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.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 f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.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'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// these color constants point to classes in CSS.\n\n// PRIMARY means the brand's primary color:\n// e.g.\n// The Chicago Bears would use Maastricht Blue #0A162B\n// The Texas Longhorns would use Burnt Orange #BF5700\n// Perhaps, the Aggies would choose #500000\n\n// SECONDARY means the brand's secondary color:\n// e.g.\n// The Chicago Bears would use Mahogany #CA3700\n// The Texas Longhorns would use Dark Gray #333F48\n\n// So if we had the Longhorns as a customer,\n// SECONDARY_COLOR_FOREGROUND therefore points to a class like:\n// .secondary-color-foreground{\n// color: #333F48\n// }\n\n// OFFSET_SECONDARY_COLOR_FOREGROUND is a color that looks nice against\n// the secondary color. In this case, white (#FFFFFF) is hard to beat.\n//\n// .offset-secondary-color-foreground{\n// color: #FFFFFF\n// }\n\n// USING THESE COLORS:\n// We suggest creating elements and tagging them thus:\n// <div className={`${colors.SECONDARY_COLOR_BACKGROUND} ${colors.OFFSET_SECONDARY_COLOR_FOREGROUND}`} >Lorem ipsum, etc,</div>\n//\n// In this example. we would get a dark grey background and the Lorem Ipsum text would appear white.\n\nexport const BRANDING_CLASSES = {\n PRIMARY_COLOR_FOREGROUND: \"primary-foreground\",\n PRIMARY_COLOR_BACKGROUND: \"primary-background\",\n PRIMARY_COLOR_BACKGROUND_HOVER: \"primary-background-hover\",\n PRIMARY_COLOR_BORDER: \"primary-border\",\n PRIMARY_COLOR_BORDER_BOTTOM: \"primary-border-bottom\",\n PRIMARY_COLOR_UNDERLINE: \"primary-underline\",\n OFFSET_PRIMARY_COLOR_FOREGROUND: \"offset-primary-foreground\",\n OFFSET_PRIMARY_COLOR_BACKGROUND: \"offset-primary-background\",\n OFFSET_PRIMARY_COLOR_BORDER: \"offset-primary-border\",\n\n SECONDARY_COLOR_FOREGROUND: \"secondary-foreground\",\n SECONDARY_COLOR_BACKGROUND: \"secondary-background\",\n SECONDARY_COLOR_BORDER: \"secondary-border\",\n SECONDARY_COLOR_UNDERLINE: \"secondary-underline\",\n OFFSET_SECONDARY_COLOR_FOREGROUND: \"offset-secondary-foreground\",\n OFFSET_SECONDARY_COLOR_BACKGROUND: \"offset-secondary-background\",\n OFFSET_SECONDARY_COLOR_BORDER: \"offset-secondary-border\",\n\n LINK_COLOR: \"link-color\",\n TEXT_COLOR: \"text-color\",\n ALT_TEXT_COLOR: \"alt-text-color\",\n ALT_TEXT_BORDER: \"alt-text-border\",\n DISABLED_BACKGROUND: \"disabled-background\",\n DISABLED_FOREGROUND: \"disabled-foreground\",\n\n BUTTON_DEFAULT_BACKGROUND: \"default-background\",\n BUTTON_DEFAULT_TEXT: \"default-foreground\",\n BUTTON_PRIMARY: \"button--primary\",\n BUTTON_SECONDARY: \"button--secondary\",\n BUTTON_PRIMARY_INVERTED: \"button--primary--inverted\",\n BUTTON_SYSTEM: \"button--system\",\n BUTTON_FEATURE: \"button--feature\",\n BUTTON_FEATURE_INVERTED: \"button--feature--inverted\",\n BUTTON_FEATURE_ICON_WRAPPER: \"button--feature-icon-wrapper\",\n BUTTON_FEATURE_INVERTED_ICON_WRAPPER:\n \"button--feature--inverted-icon-wrapper\",\n LAYOUT_HEADER_FOREGROUND: \"layout-header-foreground\",\n\n PILL_GRAY: \"pill--gray\",\n PILL_OUTLINE: \"pill--outline\",\n PILL_PRIMARY: \"pill--primary\",\n PILL_PRIMARY_COLOR: \"pill--primary-color\",\n PILL_SECONDARY: \"pill--secondary\",\n PILL_SECONDARY_COLOR: \"pill--secondary-color\",\n PILL_WARNING: \"pill--warning\",\n PILL_COUNTER: \"pill--counter\",\n\n PRIMARY_MENU_ICON: \"primary-menu-icon\",\n SECONDARY_MENU_ICON: \"secondary-menu-icon\",\n SIDENAV_MENU_GROUP_OPEN_CONTAINER: \"sidenav-menu-group-open-container\",\n SIDENAV_SUB_ITEM: \"side-nav-sub-item\",\n SIDENAV_ITEM: \"sidenav-item\",\n SIDENAV_SUB_ITEM_CONTAINER: \"side-nav-sub-item-container\",\n SIDENAV_SECONDARY_MENU_BUTTON: \"side-nav-secondary-menu-button\",\n SIDENAV_HOVER_STATE: \"side-nav-hover-state\",\n\n CELEBRATION_BACKGROUND: \"celebration-background\",\n};\n\n/**\n * Actual classes that appear in CSS, not their keys\n */\nexport const BRANDING_CLASS_VALUES = Object.values(BRANDING_CLASSES);\n","import { BRANDING_CLASS_VALUES, BRANDING_CLASSES } from \"./branding\";\n\n/**\n * Utility class for detecting keys\n */\nexport class BrandingUtilities {\n /**\n * Returns true if you entered an existing branding class name e.g. link-color\n * @param {} className\n */\n static isBrandingClass = (className) => {\n return BRANDING_CLASS_VALUES.includes(className);\n };\n\n /**\n * Returns true if you entered a string containing any branding class name\n * e.g. 'large-text foo-bar primary-color-foreground'\n * @param {} className\n */\n static hasBrandingClass = (classNames) => {\n if (!Array.isArray(classNames)) {\n classNames = classNames.split(\" \");\n }\n return classNames.some((c) => BrandingUtilities.isBrandingClass(c));\n };\n\n /**\n * Inspects content and returns all classes that are missing.\n *\n * * @param {} content - a big string\n */\n static getMissingClassesFromFile = (content) => {\n return BRANDING_CLASS_VALUES.filter(\n (v) => !content.match(`\\\\.${v}[\\\\s|:]`)\n );\n };\n\n static COBRANDED_PRIMARY_BUTTON_WITH_HOVER = [\n BRANDING_CLASSES.PRIMARY_COLOR_BACKGROUND,\n BRANDING_CLASSES.OFFSET_PRIMARY_COLOR_FOREGROUND,\n BRANDING_CLASSES.PRIMARY_COLOR_BACKGROUND_HOVER,\n ];\n\n static COBRANDED_DISABLED_BUTTON = [\n BRANDING_CLASSES.DISABLED_BACKGROUND,\n BRANDING_CLASSES.DISABLED_FOREGROUND,\n ];\n\n static DEFAULT_BUTTON = [\n BRANDING_CLASSES.BUTTON_DEFAULT_BACKGROUND,\n BRANDING_CLASSES.BUTTON_DEFAULT_TEXT,\n ];\n}\n","// istanbul ignore file - barrel file\n\nimport type { Dispatch, SetStateAction } from \"react\";\n\nimport type { User } from \"./src/User\";\n\nexport { DeepReadonly } from \"./src/DeepReadonly\";\nexport { DeepPartial } from \"./src/DeepPartial\";\nexport { ExactlyOne } from \"./src/ExactlyOne\";\nexport { ExtractStrict } from \"./src/ExtractStrict\";\nexport { Manifest } from \"./src/Manifest\";\nexport { RequireKeys } from \"./src/RequireKeys\";\nexport { RequireOnlyOne } from \"./src/RequireOnlyOne\";\nexport { RequireAtLeastOne } from \"./src/RequireAtLeastOne\";\nexport { Thunk } from \"./src/Thunk\";\n\n/**\n * Expands object types recursively\n * Credit: https://stackoverflow.com/questions/57683303/how-can-i-see-the-full-expanded-contract-of-a-typescript-type\n */\nexport type ExpandRecursively<T> = T extends object\n ? T extends infer O\n ? { [K in keyof O]: ExpandRecursively<O[K]> }\n : never\n : T;\n\nexport { KazooRequestHandler } from \"./src/KazooRequestHandler\";\nexport { KazooRequest } from \"./src/KazooRequest\";\nexport {\n ContextLike,\n ITracer,\n GraphQLParameters,\n PrincipalIdentifier,\n} from \"./src/ContextLike\";\nexport { IKazooIdToken, AllowedRobot, ROBOTS } from \"./src/IKazooIdToken\";\nexport {\n User,\n UserCompanyInfo,\n UserRole,\n PeopleSegmentModule as IUserPeopleSegmentModule,\n} from \"./src/User\";\nexport { TaskQueueLike } from \"./src/TaskQueueLike\";\nexport { IYeiV3Post, IYeiV3Args, IYeiV3Comment } from \"./src/yeiV3\";\nexport { I18nProps, TFunction } from \"./src/i18n\";\n\nexport {\n ErrorMetadata,\n KazooError,\n NotAuthenticatedError,\n NotFoundError,\n ForbiddenError,\n UserInputError,\n FieldValidationError,\n initializeError,\n IKazooErrorConstructable,\n getTranslationKeyAndValuesFromKazooErrorIfPossible,\n hasTranslationKey,\n} from \"./src/KazooError\";\n\nexport { throwNotFoundIfAppropriate } from \"./src/throwNotFoundIfAppropriate\";\nexport {\n isDbOrGQLNotFoundError,\n PossibleNotFoundError,\n} from \"./src/isDbOrGQLNotFoundError\";\nexport { userHasAnyIdMatching } from \"./src/userHasAnyIdMatching\";\nexport { sanitizeTokenForLogging } from \"./src/sanitizeTokenForLogging\";\nexport { PartialBy } from \"./src/PartialBy\";\nexport {\n KebabCase,\n SnakeCase,\n ScreamingSnakeCase,\n LowercaseKey,\n CamelCaseFromKebabCase,\n CamelCaseFromSnakeCase,\n KeyOfType,\n} from \"./src/keyOfTypes\";\n\nexport enum GraphQLErrorCode {\n BAD_USER_INPUT = \"BAD_USER_INPUT\",\n NOT_FOUND = \"NOT_FOUND\",\n}\n\nexport interface IApplicationComponentProps {\n key: string;\n route: string;\n subdomain: string;\n features: { [key: string]: boolean };\n enableSubscriptions?: boolean;\n requestId: string;\n}\n\nexport type IApplicationComponent = any;\nexport type SetStateFn<T> = Dispatch<SetStateAction<T>>;\n\nexport type LayoutOptions = \"default\" | \"minimal\" | \"brandedMinimal\";\n\nexport enum DateOptions {\n LAST_WEEK = \"LAST_WEEK\",\n LAST_30_DAYS = \"LAST_30_DAYS\",\n LAST_60_DAYS = \"LAST_60_DAYS\",\n LAST_90_DAYS = \"LAST_90_DAYS\",\n SINCE_LAUNCH = \"SINCE_LAUNCH\",\n}\n\nexport interface IEncouragementArgs {\n role: string;\n date?: string;\n}\n\nexport interface IEncouragement {\n iconUrl: string;\n program: string;\n reportUrl: string;\n label: string;\n}\n\nexport interface IRewardsFulfillment {\n balance: number;\n isLowBalance: boolean;\n reportUrl: string;\n billingEmail: string;\n}\n\nexport interface IApiVersion {\n sha: string;\n version: string;\n}\n\nexport enum IPrivacy {\n RESTRICTED,\n PRIVATE,\n PUBLIC,\n}\nexport enum CelebrationType {\n BIRTHDAY,\n ANNIVERSARY,\n}\n\nexport interface ICoreValue {\n id?: string;\n name?: string;\n description?: string;\n}\n\nexport interface ISkill {\n id?: string;\n name?: string;\n count?: number;\n}\n\nexport interface IUserConnection {\n totalCount: number;\n nodes: User[];\n}\n\nexport interface IComment {\n id?: string;\n from: User;\n message: string;\n hidden: boolean;\n createdAt?: string;\n}\n\nexport interface ICommentConnection {\n totalCount: number;\n nodes: IComment[];\n}\n\nexport interface IFlag {\n id: string;\n message?: string;\n userId: string;\n}\n\nexport interface IRecognition {\n id: string;\n permalink: string;\n createdAt: string;\n updatedAt: string;\n privacy: IPrivacy;\n points: number;\n source: string;\n message: string;\n from: User;\n to: IUserConnection;\n highFives: IUserConnection;\n coreValue?: ICoreValue;\n skills: ISkill[];\n comments: ICommentConnection;\n}\n\nexport enum ActivityFeedBackground {\n PRIMARY_COLOR = \"PRIMARY_COLOR\",\n GRAY = \"GRAY\",\n}\n\nexport interface IBranding {\n backgroundOverlayUrl?: string;\n headerTextAndIconColor: string;\n iconLogoUrl: string;\n loginLogoUrl: string;\n overlayBackgroundImage?: string;\n overlayCelebrationBackground?: boolean;\n overlayCelebrationSVG?: string;\n overlays?: string[];\n primaryColor: string;\n secondaryColor: string;\n siteBackgroundColor?: string;\n siteBackgroundUrl?: string;\n webLogoAltText: string;\n webLogoUrl: string;\n activityFeedBackground: ActivityFeedBackground;\n fileUploadErrorUrl?: string;\n}\n\nexport interface ICompanyLink {\n id: string;\n name: string;\n url: string;\n}\n\nexport enum IProfileTabs {\n BEHAVIOR_BONUSES = \"BEHAVIOR_BONUSES\",\n CHECK_IN = \"CHECK_IN\",\n FEEDBACK = \"FEEDBACK\",\n NEW_FEEDBACK = \"NEW_FEEDBACK\",\n GOALS = \"GOALS\",\n NEW_CHECK_INS = \"NEW_CHECK_INS\",\n NEW_GOALS = \"NEW_GOALS\",\n LEGACY_RECOGNITIONS = \"LEGACY_RECOGNITIONS\",\n POINTS_HISTORY = \"POINTS_HISTORY\",\n RECOGNITIONS = \"RECOGNITIONS\",\n REWARDS = \"REWARDS\",\n SYNC_UP = \"SYNC_UP\",\n UNSET = \"UNSET\",\n INCENTIVES = \"INCENTIVES\",\n ACTIVITY_ATTRIBUTES_DASHBOARD = \"ACTIVITY_ATTRIBUTES_DASHBOARD\",\n}\n\nexport interface ProfileAccess {\n isSelf: boolean;\n bothYeiUsers: boolean;\n userIsFollowed: boolean;\n showActivityDownload: boolean;\n}\n\nexport interface ITopActivities {\n coreValuesTotal: number;\n skillsTotal: number;\n coreValues: ICoreValue[];\n skills: ISkill[];\n}\n\nexport enum IUserRole {\n EMPLOYEE,\n MANAGER,\n ADMIN,\n}\n\nexport enum IManagerAction {\n PENDING_GOAL_APPROVAL,\n PENDING_CHECKIN,\n}\n\nexport interface IActionItem {\n actionType?: string;\n avatar?: string;\n buttonText: string;\n buttonUrl: string;\n count?: number;\n dueDate?: Date;\n icon: string;\n role: string;\n title: string;\n}\n\nexport enum GoalType {\n AD_HOC,\n COMPANY,\n DEPARTMENT,\n INDIVIDUAL,\n}\n\nexport enum Engagement {\n PERFORMANCE = \"PERFORMANCE\",\n SOCIAL = \"SOCIAL\",\n}\n\nexport interface IGoalLineItem {\n detailUrl: string;\n name: string;\n id: string;\n cycleId: string;\n cycleTitle: string;\n progress: number;\n goalStatus: string;\n participantType: string;\n isPublic: boolean;\n closeDueDate: string;\n lastUpdated: string;\n progressStatus: string;\n owner: string;\n}\n\nexport enum IMaintenanceType {\n CATALOG_ITEM_NEW,\n YEI_SURVEY_NEW,\n NOMINATION_NEW,\n BEHAVIOR_BONUS_NEW,\n CHECKIN_CLOSURE,\n GOAL_CLOSURE,\n}\n\nexport interface IMaintenanceItem {\n type: IMaintenanceType;\n role: IUserRole;\n message: string;\n actionText: string;\n actionUrl: string;\n}\n\nexport interface ICelebrationsItem {\n id: string;\n name: string;\n type: string;\n avatar: string;\n date: string;\n yearsOfService?: number;\n}\n\nexport interface IAnnouncementItem {\n id: string;\n message: string;\n publishDate: Date;\n}\n\nexport enum NavigationSection {\n COMPANY = \"COMPANY\",\n HOME = \"HOME\",\n MODULES = \"MODULES\",\n PERFORMANCE_MANAGEMENT = \"PERFORMANCE_MANAGEMENT\",\n RECOGNITION_REWARDS = \"RECOGNITION_REWARDS\",\n /**\n * Legacy YEI Surveys\n */\n SURVEYS = \"SURVEYS\",\n /**\n * New Pulse / WorkTango Surveys\n */\n SURVEYS_AND_INSIGHTS = \"SURVEYS_AND_INSIGHTS\",\n TOOLS = \"TOOLS\",\n}\n\nexport enum ParticipationType {\n BEHAVIOR_BONUS = \"BEHAVIOR_BONUS\",\n CHECK_IN = \"CHECK_IN\",\n GOALS = \"GOALS\",\n FEEDBACK = \"FEEDBACK\",\n RECOGNITION = \"RECOGNITION\",\n SYNC_UP = \"SYNC_UP\",\n}\n\nexport interface NavSubItem {\n id: string;\n text: string;\n url: string;\n target?: string;\n embedUrl?: string;\n include?: boolean;\n}\n\n// YEI currently defines some sections. If this is the case we either want to just use yei and push\n// sub items or, if YEI doesn't have any returned items for that section, use just the section and its sub\n// items as defined in KW\nexport enum YeiSubSection {\n MODERATION = \"Moderation\",\n CATALOGS = \"Catalogs\",\n}\n\nexport interface INavigationItem {\n id: string;\n icon?: string;\n section: NavigationSection;\n subItems: NavSubItem[];\n text: string | YeiSubSection;\n url: string;\n embedUrl?: string;\n include?: boolean;\n}\n\nexport interface IMenuItem {\n icon?: string;\n id?: string;\n text: string;\n url?: string;\n weight?: number;\n subItems?: NavSubItem[];\n}\n\nexport enum Overlay {\n SITE_BACKGROUND,\n CELEBRATION,\n RECOGNITION,\n}\n\nexport enum BrandingHeaderColor {\n WHITE = \"#FFFFFF\",\n DARK_GREY = \"#333333\",\n}\n\nexport interface ICelebrations {\n anniversaries: number;\n birthdays: number;\n usersBirthdays: IUserToolTip[];\n usersAnniversaries: IUserToolTip[];\n anniversariesUrl: string;\n birthdaysUrl: string;\n}\n\nexport interface ITeamCelebration {\n name: string;\n type: string;\n avatar: string;\n date: string;\n yearsOfService: number | null;\n}\n\nexport interface IDirectReport {\n fullName: string;\n title: string;\n avatar: string;\n profileUrl: string;\n}\n\nexport interface IUserSearchResult {\n id: string;\n hgId?: string;\n hgUserId?: string;\n avatar?: string;\n image30: string;\n image70: string;\n initials?: string;\n name: string;\n jobTitle: string;\n department?: string;\n groupFeatureFlags?: Record<string, boolean>;\n group: string;\n profileUrl?: string;\n points?: {\n givingBalance?: number;\n redemptionBalance?: number;\n expirationDate?: string;\n };\n}\nexport type IKWUserSearchResultManager = Omit<IKWUserSearchResult, \"key\">;\nexport interface IKWUserSearchResult {\n id: string;\n name: string;\n initials?: string;\n status?: \"ACTIVE\" | \"ARCHIVED\" | \"PAUSED\" | \"PURGED\";\n key: string;\n image70?: string;\n /*\n This is the property that the UserSelect component\n uses to render a helper text bellow the name of a user\n */\n jobTitle?: string | { name: string };\n /*\n This is the property that the UserSelect component\n uses to render a pill next to the name of a user\n */\n primaryGroup?: string | { name: string };\n location?: { id: string; name: string };\n /*\n This is the property that the UserSelect component\n uses to verify if the user is an admin.\n */\n adminIsSelected?: boolean;\n department?: { id: string };\n isAdmin?: boolean;\n}\n\nexport interface FacepileUser {\n avatar?: string;\n department?: string;\n id: string;\n image160?: string;\n image30?: string;\n image70?: string;\n initials: string;\n jobTitle?: string;\n name: string;\n primaryGroup?: string;\n profileUrl?: string;\n}\n\nexport interface IPostUser {\n fullName: string;\n id: string;\n image30?: string;\n image50?: string;\n image70?: string;\n initials?: string | undefined;\n profileUrl: string;\n title?: string;\n}\n\nexport type IPostComment = {\n postId: string;\n from: IPostUser;\n hidden?: boolean;\n displayTime: string;\n id?: string;\n message: string;\n};\n\nexport interface IContributingUsers {\n id: string;\n}\n\nexport interface IRewardItem {\n canBeRedeemed?: boolean;\n description?: string;\n id: string;\n image?: string;\n imageLarge?: string;\n imageMedium?: string;\n imageSmall?: string;\n defaultProductImage?: string;\n name: string;\n points?: number;\n pooling?: boolean;\n poolingContributingUserIds?: IContributingUsers[];\n poolingDaysToGo?: number;\n poolingEndTime?: string;\n visible?: boolean;\n}\n\nexport interface IUserToolTip {\n id: string;\n image30?: string;\n image70?: string;\n initials: string;\n name: string;\n jobTitle: string;\n}\n\nexport interface INotificationRequest {\n detailUrl: string;\n items: INotification[];\n}\n\nexport interface INotification {\n avatar: string;\n detailUrl: string;\n id: string;\n message: string;\n timestamp: Date;\n}\n\nexport interface IEmployeeContributorItem {\n avatar: string;\n score: string;\n fullName: string;\n profileUrl: string;\n}\n\nexport interface IGroupContributorItem {\n score: string;\n reportUrl: string;\n title: string;\n}\n\nexport interface IEmployeeContributor {\n contributors: IEmployeeContributorItem[];\n label: string;\n url: string;\n}\n\nexport interface IGroupContributor {\n contributors: IGroupContributorItem[];\n label: string;\n url: string;\n}\n\nexport interface ITopContributors {\n dateOptions: string[];\n employeeContributor: IEmployeeContributor;\n groupContributor: IGroupContributor;\n tabs: Engagement[];\n title: string;\n}\n\nexport interface IParticipationProgram {\n icon: string;\n percent: number;\n title: string;\n type: string;\n url: string;\n}\n\nexport interface IParticipation {\n dateOptions: string[];\n title: string;\n programs: IParticipationProgram[];\n}\n\nexport interface IPostArgs {\n groups?: string[]; // array of group ids to include\n olderThan?: string; // should be a post id, used for pagination\n newerThan?: string; // should be a p ost id, used for hasNewPosts\n rollupOlderThan?: string; // should be a UNIX timestamp, used for paginating when using rollup data\n perPage?: number;\n relationshipType?: string;\n types?: string[];\n}\n\nexport enum PostRelationship {\n DIRECT_REPORTS,\n FULL_REPORTING_CHAIN,\n PEOPLE_I_FOLLOW,\n}\n\nexport enum PostType {\n ADJUST_GIVING_POINTS,\n ADJUST_REDEMPTION_POINTS,\n AUTO_AWARD_ANNIVERSARY,\n AUTO_AWARD_BIRTHDAY,\n DONORS_CHOOSE_DONATION,\n GENERAL,\n RECOGNITION,\n SPECIAL_RECOGNITION,\n REDEEM_POINTS,\n SET_POINTS,\n INCENTIVES,\n}\n\nexport interface IPost {\n comments?: IPostComment[];\n flags?: IFlag[];\n detailUrl: string;\n from: IPostUser;\n id: string;\n privacy: string;\n timestamp: string;\n type: string;\n selfReportingCommentTruncated?: string;\n permalink?: string | null;\n}\n\nexport interface IFeedRecognition extends IPost {\n coreValue: ICoreValue;\n highFives?: IPostUser[];\n isBehaviorBonus?: boolean;\n message: string;\n permalink: string;\n points?: number | null; // should only be visible if I'm involved in the recognition\n tokenTypeName?: string;\n recipients: IPostUser[];\n skills: ISkill[];\n type: string;\n}\n\nexport interface IRecognitionRecognition extends IFeedRecognition {\n to?: any;\n highFives: any;\n name?: string;\n createdAt?: string;\n comments: any;\n from: any;\n permalink: string;\n isPinned?: boolean;\n pinMessage?: string;\n pinDate?: string;\n}\n\nexport interface IRewardRedemption extends IPost {\n createdAt: Date;\n detailUrl: string;\n from: IPostUser;\n id: string;\n isBehaviorBonus: boolean;\n item: IRewardItem;\n points?: number;\n privacy: string;\n}\n\nexport interface IBehaviorBonusRedemption extends IRewardRedemption {\n highFives?: IPostUser[];\n}\n\nexport type IRedemption = IRewardRedemption | IBehaviorBonusRedemption;\n\nexport interface IFeedItem {\n data: IRedemption[] | IFeedRecognition;\n id: string;\n isBehaviorBonus?: boolean;\n redemptionIds?: string[];\n rollupUrl?: string;\n timestamp?: string;\n type?: string;\n}\n\nexport interface IPostsResult {\n posts: IPost[];\n rollups: {\n redemptionIds: string[];\n }[];\n rollupOlderThan: string;\n}\n\nexport interface IActivityFeedResult {\n feed: IPostsResult;\n yeiApi_viewer: any;\n}\n\nexport enum IYeiV3HttpMethods {\n GET = \"GET\",\n POST = \"POST\",\n PUT = \"PUT\",\n PATCH = \"PATCH\",\n DELETE = \"DELETE\",\n}\n\nexport enum IButtonVariants {\n NONE = \"\",\n DISABLED = \"disabled\",\n PRIMARY = \"primary\",\n PRIMARY_INVERTED = \"primary_inverted\",\n SECONDARY = \"secondary\",\n SECONDARY_INVERTED = \"secondary_inverted\",\n SYSTEM = \"system\",\n}\n\nexport enum BulkActionComponentEnums {\n ADD_POINTS = \"ADD_POINTS\",\n ASSIGN_DEPARTMENT = \"ASSIGN_DEPARTMENT\",\n ASSIGN_LOCATION = \"ASSIGN_LOCATION\",\n ASSIGN_GROUPS = \"ASSIGN_GROUPS\",\n SET_ACTIVE = \"SET_ACTIVE\",\n PAUSE_USERS = \"PAUSE_USERS\",\n ARCHIVE_USERS = \"ARCHIVE_USERS\",\n UPDATE_MANAGER = \"UPDATE_MANAGER\",\n ADJUST_POINTS = \"ADJUST_POINTS\",\n CHANGE_POINT_RULE = \"CHANGE_POINT_RULE\",\n PURGE = \"PURGE\",\n}\n\nexport type BatchSourceIntegration = \"SFTP\" | \"KAZOO\";\n\n// 1 char object properties used to keep file names uploaded to S3 short\n// See rawToReadable in batchCreationQueue.ts\nexport interface RawCsvMetadata {\n u?: string; // uploader. If undefined, file was uploaded by super/platform admin\n i: BatchSourceIntegration; // integration\n n: string; // file name\n e?: boolean; // email\n c?: boolean; // create inactive\n}\n\nexport interface CsvMetadata {\n // If undefined, CSV was uploaded by super/platform admin\n uploader?: string;\n integration: BatchSourceIntegration;\n name: string;\n emailOnCreation?: boolean;\n createInactive?: boolean;\n}\n\nexport type ExtractTypeFromArray<T> = T extends (infer U)[] ? U : never;\n\nexport { IHasId, objectHasId } from \"./src/IHasId\";\n\nexport { UnwrapPromise } from \"./src/UnwrapPromise\";\n\nexport type ToastFunction = (\n content?: string | JSX.Element | undefined,\n timeout?: number | undefined\n) => void;\n\nexport const DEFAULT_BRANDING_OPTIONS: Required<IBranding> = {\n activityFeedBackground: ActivityFeedBackground.PRIMARY_COLOR,\n backgroundOverlayUrl: \"/layout/static/bg-overlay.png\",\n fileUploadErrorUrl: \"/layout/static/uploadfile_error.svg\",\n headerTextAndIconColor: BrandingHeaderColor.DARK_GREY,\n iconLogoUrl: \"/layout/static/default/icon_logo.png\",\n loginLogoUrl: \"/layout/static/default/login_logo.png\",\n overlayBackgroundImage: \"\",\n overlayCelebrationBackground: false,\n overlayCelebrationSVG: \"\",\n overlays: [\"CELEBRATIONS\"],\n primaryColor: \"#3094ED\",\n secondaryColor: \"#524FEF\",\n siteBackgroundColor: \"#EDEDED\",\n siteBackgroundUrl: \"\",\n webLogoAltText: \"WorkTango\",\n webLogoUrl: \"/layout/static/default/web_logo.png\",\n};\n\nexport const DEFAULT_TIMEZONE = \"America/Chicago\";\n\nexport type UserProfile = Omit<\n User,\n | \"source\"\n | \"firstName\"\n | \"lastName\"\n | \"roles\"\n | \"secondaryManagerOf\"\n | \"departmentInfo\"\n | \"ids\"\n | \"department\"\n | \"email\"\n | \"title\"\n | \"birthday\"\n> & { ids?: User[\"ids\"] } & {\n department?: User[\"department\"];\n} & { email?: User[\"email\"] } & {\n title?: User[\"title\"];\n} & {\n birthday?: { month?: number; day?: number };\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","import dayjs, { Dayjs } from \"dayjs\";\nimport { default as relativeTimePlugin } from \"dayjs/plugin/relativeTime\";\n\ndayjs.extend(relativeTimePlugin);\n\nexport function isMs(num: number): boolean {\n return `${num}`.length >= 13;\n}\n\nexport function containsNonNumeric(str: string): boolean {\n return /[^$,.\\d]/.test(str);\n}\n\nexport function toDayjs(date: number | string | Date | Dayjs): Dayjs {\n if (date instanceof Date) {\n return dayjs(date);\n }\n if (typeof date === \"string\") {\n if (containsNonNumeric(date)) {\n return dayjs(date);\n }\n date = parseInt(date, 10);\n }\n if (typeof date === \"number\") {\n if (isMs(date)) {\n return dayjs(date);\n }\n return dayjs.unix(date);\n }\n return date;\n}\n\nexport function relativeTime(\n firstDate: Date | string | number | Dayjs,\n secondDate: Date | string | number | Dayjs = dayjs()\n): string {\n firstDate = toDayjs(firstDate);\n secondDate = toDayjs(secondDate);\n\n return firstDate.from(secondDate);\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function pascalCaseTransform(input, index) {\n var firstChar = input.charAt(0);\n var lowerChars = input.substr(1).toLowerCase();\n if (index > 0 && firstChar >= \"0\" && firstChar <= \"9\") {\n return \"_\" + firstChar + lowerChars;\n }\n return \"\" + firstChar.toUpperCase() + lowerChars;\n}\nexport function pascalCaseTransformMerge(input) {\n return input.charAt(0).toUpperCase() + input.slice(1).toLowerCase();\n}\nexport function pascalCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \"\", transform: pascalCaseTransform }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { pascalCase, pascalCaseTransform, pascalCaseTransformMerge, } from \"pascal-case\";\nexport function camelCaseTransform(input, index) {\n if (index === 0)\n return input.toLowerCase();\n return pascalCaseTransform(input, index);\n}\nexport function camelCaseTransformMerge(input, index) {\n if (index === 0)\n return input.toLowerCase();\n return pascalCaseTransformMerge(input);\n}\nexport function camelCase(input, options) {\n if (options === void 0) { options = {}; }\n return pascalCase(input, __assign({ transform: camelCaseTransform }, options));\n}\n//# sourceMappingURL=index.js.map","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","/**\n * Upper case the first character of an input string.\n */\nexport function upperCaseFirst(input) {\n return input.charAt(0).toUpperCase() + input.substr(1);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\nexport function capitalCaseTransform(input) {\n return upperCaseFirst(input.toLowerCase());\n}\nexport function capitalCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \" \", transform: capitalCaseTransform }, options));\n}\n//# sourceMappingURL=index.js.map","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n az: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n lt: {\n regexp: /[\\u0069\\u006A\\u012F]\\u0307|\\u0069\\u0307[\\u0300\\u0301\\u0303]/g,\n map: {\n i̇: \"\\u0049\",\n j̇: \"\\u004A\",\n į̇: \"\\u012E\",\n i̇̀: \"\\u00CC\",\n i̇́: \"\\u00CD\",\n i̇̃: \"\\u0128\",\n },\n },\n};\n/**\n * Localized upper case.\n */\nexport function localeUpperCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return upperCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return upperCase(str);\n}\n/**\n * Upper case as a function.\n */\nexport function upperCase(str) {\n return str.toUpperCase();\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nimport { upperCase } from \"upper-case\";\nexport function constantCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \"_\", transform: upperCase }, options));\n}\n//# sourceMappingURL=index.js.map","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function dotCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \".\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { capitalCase } from \"capital-case\";\nexport function headerCase(input, options) {\n if (options === void 0) { options = {}; }\n return capitalCase(input, __assign({ delimiter: \"-\" }, options));\n}\n//# sourceMappingURL=index.js.map","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function paramCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"-\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function pathCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"/\" }, options));\n}\n//# sourceMappingURL=index.js.map","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\nexport function sentenceCaseTransform(input, index) {\n var result = input.toLowerCase();\n if (index === 0)\n return upperCaseFirst(result);\n return result;\n}\nexport function sentenceCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \" \", transform: sentenceCaseTransform }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function snakeCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"_\" }, options));\n}\n//# sourceMappingURL=index.js.map","/**\n * Lower case the first character of an input string.\n */\nexport function lowerCaseFirst(input) {\n return input.charAt(0).toLowerCase() + input.substr(1);\n}\n//# sourceMappingURL=index.js.map","export function spongeCase(input) {\n var result = \"\";\n for (var i = 0; i < input.length; i++) {\n result +=\n Math.random() > 0.5 ? input[i].toUpperCase() : input[i].toLowerCase();\n }\n return result;\n}\n//# sourceMappingURL=index.js.map","export function swapCase(input) {\n var result = \"\";\n for (var i = 0; i < input.length; i++) {\n var lower = input[i].toLowerCase();\n result += input[i] === lower ? input[i].toUpperCase() : lower;\n }\n return result;\n}\n//# sourceMappingURL=index.js.map","var SMALL_WORDS = /\\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|so|some|tha[tn]|the|to|up|upon|vs?\\.?|versus|via|when|with|without|yet)\\b/i;\nvar TOKENS = /[^\\s:–—-]+|./g;\nvar WHITESPACE = /\\s/;\nvar IS_MANUAL_CASE = /.(?=[A-Z]|\\..)/;\nvar ALPHANUMERIC_PATTERN = /[A-Za-z0-9\\u00C0-\\u00FF]/;\nexport function titleCase(input) {\n var result = \"\";\n var m;\n // tslint:disable-next-line\n while ((m = TOKENS.exec(input)) !== null) {\n var token = m[0], index = m.index;\n if (\n // Ignore already capitalized words.\n !IS_MANUAL_CASE.test(token) &&\n // Ignore small words except at beginning or end.\n (!SMALL_WORDS.test(token) ||\n index === 0 ||\n index + token.length === input.length) &&\n // Ignore URLs.\n (input.charAt(index + token.length) !== \":\" ||\n WHITESPACE.test(input.charAt(index + token.length + 1)))) {\n // Find and uppercase first word character, skips over *modifiers*.\n result += token.replace(ALPHANUMERIC_PATTERN, function (m) { return m.toUpperCase(); });\n continue;\n }\n result += token;\n }\n return result;\n}\n//# sourceMappingURL=index.js.map","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n az: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n lt: {\n regexp: /[\\u0069\\u006A\\u012F]\\u0307|\\u0069\\u0307[\\u0300\\u0301\\u0303]/g,\n map: {\n i̇: \"\\u0049\",\n j̇: \"\\u004A\",\n į̇: \"\\u012E\",\n i̇̀: \"\\u00CC\",\n i̇́: \"\\u00CD\",\n i̇̃: \"\\u0128\",\n },\n },\n};\n/**\n * Localized upper case.\n */\nexport function localeUpperCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return upperCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return upperCase(str);\n}\n/**\n * Upper case as a function.\n */\nexport function upperCase(str) {\n return str.toUpperCase();\n}\n//# sourceMappingURL=index.js.map","/**\n * Returns a boolean indicating whether the string is upper case.\n */\nexport function isUpperCase(input) {\n return input.toUpperCase() === input && input.toLowerCase() !== input;\n}\n//# sourceMappingURL=index.js.map","/**\n * Returns a boolean indicating whether the string is lower case.\n */\nexport function isLowerCase(input) {\n return input.toLowerCase() === input && input.toUpperCase() !== input;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isLowerCase = exports.isUpperCase = exports.upperCaseFirst = exports.localeUpperCase = exports.upperCase = exports.titleCase = exports.swapCase = exports.spongeCase = exports.lowerCaseFirst = exports.localeLowerCase = exports.lowerCase = exports.snakeCase = exports.sentenceCase = exports.pathCase = exports.pascalCase = exports.paramCase = exports.noCase = exports.headerCase = exports.dotCase = exports.constantCase = exports.capitalCase = exports.camelCase = void 0;\nvar changeCase = require(\"change-case\");\nvar lowerCase1 = require(\"lower-case\");\nvar lowerCaseFirst1 = require(\"lower-case-first\");\nvar spongeCase1 = require(\"sponge-case\");\nvar swapCase1 = require(\"swap-case\");\nvar titleCase1 = require(\"title-case\");\nvar upperCase1 = require(\"upper-case\");\nvar upperCaseFirst1 = require(\"upper-case-first\");\nvar isUpperCase1 = require(\"is-upper-case\");\nvar isLowerCase1 = require(\"is-lower-case\");\n// Core\nexports.camelCase = changeCase.camelCase;\nexports.capitalCase = changeCase.capitalCase;\nexports.constantCase = changeCase.constantCase;\nexports.dotCase = changeCase.dotCase;\nexports.headerCase = changeCase.headerCase;\nexports.noCase = changeCase.noCase;\nexports.paramCase = changeCase.paramCase;\nexports.pascalCase = changeCase.pascalCase;\nexports.pathCase = changeCase.pathCase;\nexports.sentenceCase = changeCase.sentenceCase;\nexports.snakeCase = changeCase.snakeCase;\n// Extended\nexports.lowerCase = lowerCase1.lowerCase;\nexports.localeLowerCase = lowerCase1.localeLowerCase;\nexports.lowerCaseFirst = lowerCaseFirst1.lowerCaseFirst;\nexports.spongeCase = spongeCase1.spongeCase;\nexports.swapCase = swapCase1.swapCase;\nexports.titleCase = titleCase1.titleCase;\nexports.upperCase = upperCase1.upperCase;\nexports.localeUpperCase = upperCase1.localeUpperCase;\nexports.upperCaseFirst = upperCaseFirst1.upperCaseFirst;\nexports.isUpperCase = isUpperCase1.isUpperCase;\nexports.isLowerCase = isLowerCase1.isLowerCase;\n","/**\n * This function does nothing. It's useful for placeholders and finding\n * opportunities for refactoring and completing incomplete features in the\n * future. If you're using this as a placeholder, please leave a JIRA ticket\n * so the effort is not lost!\n */\nexport const doNothing: (...args: any[]) => any = () => {};\n","import React from \"react\";\n\n/**\n * Simple setState closure\n * It receives a setState function returned by React.useState()\n *\n * When to use it?\n * When you have a simple change of state\n *\n * Why to use it?\n * It will help you with annoying code coverage where you are\n * doing a simple setState: forget istanbul statements\n *\n * @example\n * const [name, setName] = React.useState(\"\");\n * <Input id=\"name\" value={name} onChange={setState(setName)} />\n */\nexport function setState<T>(setState: React.Dispatch<React.SetStateAction<T>>) {\n return (value: T) => {\n setState(value);\n };\n}\n","import React from \"react\";\n/*\n * An applied setState closure (see setState.ts for the original pattern)\n *\n * When to use it?\n * When you have a simple change of state that sets one value\n * such as\n *\n * () => setOpen(true)\n *\n * which is equivalent to\n * setStateValue(setOpen, true)\n *\n * Why to use it?\n * It will help you with annoying code coverage where you are\n * doing a simple setState: forget istanbul statements\n *\n * Example of usage:\n * const [open, setOpen] = React.useState(false);\n * // ... some code ...\n * <Button text=\"Open\" onClick={setStateValue(setOpen, true)}/>\n */\n\nexport function setStateValue<T, V extends T>(\n setState: React.Dispatch<React.SetStateAction<T>>,\n value: V | React.SetStateAction<T>\n) {\n return () => {\n setState(value);\n };\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","/**\n * But why are we using regexes?\n *\n * Simple: javascript date libraries are designed to be liberal in what they accept, so they will accept almost anything.\n *\n * We want to be much more restrictive: we accept ISO-8601 or nothing. (Ok, we will take MM-DD-YYYY for backwards compatiblity).\n *\n * So we first parse input with a regex to validate it matches the syntax we want, and only then hand it to a JS date library to parse.\n *\n * We do an additional step to validate the month value because dayjs will guess which position is the month if you give it a \"month\" > 12 and a \"day\" < 13.\n *\n * If you give it 2021-17-09, it helpfully decides that you meant September 17 2021.\n *\n * If customers are sending us YYYY-DD-MM we want to fail on everything that isn't valid (e.g. \"months >12).\n * We want to blow up as much data as possible so the customer sees that they did it wrong.\n * */\n\nimport dayjs from \"dayjs\";\nimport dayjsTz from \"dayjs/plugin/timezone\";\nimport utc from \"dayjs/plugin/utc\";\n\nimport { DEFAULT_TIMEZONE } from \"@kazoohr/types\";\n\ndayjs.extend(dayjsTz);\ndayjs.extend(utc);\ndayjs.tz.setDefault(DEFAULT_TIMEZONE);\n\nexport type SupportedDateFormat = \"YYYYMMDD\" | \"MMDDYYYY\" | \"MMDDYY\" | \"MMDD\";\nexport type ParseType = \"DATE_ONLY\" | \"FULL\";\n\nexport type DeserializedDateTime = {\n year: number;\n month: number;\n day: number;\n hour: number;\n minute: number;\n second: number;\n utcOffset?: number;\n timezone?: string;\n tzAbbreviation?: string;\n dateString?: string;\n date?: Date;\n tzSpecified: boolean;\n};\n\nconst REGEX_YYYY_MM_DD =\n /^(?<year>\\d{4})[/|-](?<month>\\d{1,2})[/|-](?<day>\\d{1,2})(=?[\\s|T])?(?<hour>\\d{1,2})?[:|\\s]?(?<minute>\\d{1,2})?[:|\\s]?(?<second>\\d{1,2})?(?<utcOffset>\\s*[+|-]\\d{1,2}:*\\d{1,2})?\\s?(?<timezone>[a-zA-Z]{4,}\\/[a-zA-Z\\s_]{3,})?(?<tzAbbreviation>[a-zA-Z]{3,4})?/;\n\nconst REGEX_MM_DD_YYYY =\n /^(?<month>\\d{1,2})[/|-](?<day>\\d{1,2})[/|-](?<year>\\d{4})(=?[\\s|T])?(?<hour>\\d{1,2})?[:|\\s]?(?<minute>\\d{1,2})?[:|\\s]?(?<second>\\d{1,2})?(?<utcOffset>\\s*[+|-]\\d{1,2}:*\\d{1,2})?\\s?(?<timezone>[a-zA-Z]{3,}\\/[a-zA-Z\\s_]{3,})?(?<tzAbbreviation>[a-zA-Z]{3,4})?/;\n\n// Obviously, this regex is problematic because there is no way to know what the user meant, so we assume US formats:\nconst REGEX_MM_DD_YY =\n /^(?<month>\\d{1,2})[/|-](?<day>\\d{1,2})[/|-](?<year>\\d{1,2})(=?[\\s|T])?(?<hour>\\d{1,2})?[:|\\s]?(?<minute>\\d{1,2})?[:|\\s]?(?<second>\\d{1,2})?(?<utcOffset>\\s*[+|-]\\d{1,2}:*\\d{1,2})?\\s?(?<timezone>[a-zA-Z]{3,}\\/[a-zA-Z\\s_]{3,})?(?<tzAbbreviation>[a-zA-Z]{3,4})?/;\n\nconst REGEX_8601_NO_TIMEZONE =\n /^\\d{4}-\\d{2}-\\d{2}[T|\\s]\\d{2}(:\\d\\d){0,3}(\\.\\d{1,8}){0,1}$/;\nconst REGEX_8601_OFFSET =\n /^\\d{4}-\\d{2}-\\d{2}[T|\\s]\\d{2}(:\\d\\d){0,3}(\\.\\d{1,8}){0,1}[+|-]\\d{1,2}:{0,1}\\d{0,2}$/;\nconst REGEX_8601_ZULU =\n /^\\d{4}-\\d{2}-\\d{2}[T|\\s]\\d{2}(:\\d\\d){0,3}(\\.\\d{1,8}){0,1}Z$/;\nconst REGEX_8601_TIMEZONE =\n /^\\d{4}-\\d{2}-\\d{2}[T|\\s]\\d{2}(:\\d\\d){0,3}(\\.\\d{1,8}){0,1}\\s?.*\\/.*$/;\n\nconst ONLY_NUMBERS = /^\\d+$/;\n\n/**\n * Returns true if this is a legit ISO8601 date that includes Date and Time\n */\nexport function isValidIso8601Date(input: string) {\n return (\n isValidIso8601DateWithTimezone(input) || REGEX_8601_NO_TIMEZONE.test(input)\n );\n}\n\n/**\n * Returns true if this is a legit ISO8601 date that includes Date, Time, and Timezone\n */\nexport function isValidIso8601DateWithTimezone(input: string) {\n return (\n REGEX_8601_OFFSET.test(input) ||\n REGEX_8601_ZULU.test(input) ||\n REGEX_8601_TIMEZONE.test(input)\n );\n}\n\n/**\n * Uses a regex to extract the date parts, returning {month,day,year} as integers\n */\nfunction parseMDY({ input, regex }: { input: string; regex: RegExp }):\n | {\n month: number;\n day: number;\n year: number;\n hour: number;\n minute: number;\n second: number;\n utcOffset?: number;\n timezone?: string;\n tzAbbreviation?: string;\n }\n | undefined {\n const defaultMatches = {\n groups: {\n year: undefined,\n month: undefined,\n day: undefined,\n hour: undefined,\n minute: undefined,\n second: undefined,\n utcOffset: undefined,\n timezone: undefined,\n tzAbbreviation: undefined,\n },\n };\n\n if (!input) {\n return parseRegexResult(defaultMatches.groups);\n }\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- need to cast regex result\n const { groups } = (input.match(regex) as any) || defaultMatches;\n return parseRegexResult(groups);\n}\n\nfunction parseRegexResult({\n year,\n month,\n day,\n hour,\n minute,\n second,\n utcOffset,\n timezone,\n tzAbbreviation,\n}: {\n year?: string;\n month?: string;\n day?: string;\n hour?: string;\n minute?: string;\n second?: string;\n utcOffset?: string;\n timezone?: string;\n tzAbbreviation?: string;\n}): DeserializedDateTime {\n return {\n year: zeroForNan(year),\n month: zeroForNan(month),\n day: zeroForNan(day),\n hour: zeroForNan(hour),\n minute: zeroForNan(minute),\n second: zeroForNan(second),\n utcOffset: parseOffset(utcOffset),\n timezone,\n tzAbbreviation,\n tzSpecified: !!timezone || !!tzAbbreviation || !!utcOffset,\n };\n}\n\nfunction parseOffset(input?: string) {\n if (!input) {\n return undefined;\n }\n if (input.includes(\":\")) {\n const [hours, minutes] = input.split(\":\");\n return zeroForNan(hours) * 60 + zeroForNan(minutes);\n }\n return zeroForNan(input);\n}\n\nfunction zeroForNan(input?: string): number {\n if (!input || !input.trim()) {\n return 0;\n }\n const parsed = parseInt(input.trim());\n // istanbul ignore next -- this is a guard, but probably never gets hit since the regex only picks numbers\n if (isNaN(parsed)) {\n return 0;\n }\n return parsed;\n}\n/**\n * Converts a 2-digit year to a 4-digit year, assuming the year is in the current century if < 30.\n * @param year a probable year\n * @returns\n */\nfunction windowYear(year: number) {\n if (year > 1900) {\n return year;\n }\n const MAX_YEAR_THIS_CENTURY = 2030 - 2000;\n\n if (year < 100 && year < MAX_YEAR_THIS_CENTURY) {\n return year + 2000;\n }\n return year + 1900;\n}\n\n/**\n * Pads and assembles an ISO-8601 compliant date part only\n *\n */\n// eslint-disable-next-line complexity -- this is a complex function\nfunction buildDate(\n input?: {\n month: number;\n year: number;\n day: number;\n hour: number;\n minute: number;\n second: number;\n timezone?: string;\n tzAbbreviation?: string;\n utcOffset?: number;\n },\n fullDate?: boolean\n):\n | {\n month: number;\n year: number;\n day: number;\n hour: number;\n minute: number;\n second: number;\n dateString?: string;\n utcOffset?: number;\n tzAbbreviation?: string;\n timezone?: string;\n date?: Date;\n tzSpecified: boolean;\n }\n | undefined {\n /**\n * We cannot check for falsy-ness as that would return undefined for input such as 0.\n * If we return undefined here, the date will be un-parsable.\n * 0 as a number can represent 00 as the year 2000.\n * In theory, input?.year will never be undefined or null because prior to this in the call chain we will run\n * multiple regexes for numbers as well as parseInt if a number is not found.\n */\n // istanbul ignore next -- This is code that has been here long enough that I am afraid to remove it.\n\n if (input?.year === undefined || input?.month === null) {\n return;\n }\n if (input.month > 12) {\n return;\n }\n if (input.day < 1) {\n return;\n }\n\n const {\n year,\n month,\n day,\n hour,\n minute,\n second,\n utcOffset,\n timezone,\n tzAbbreviation,\n } = input;\n\n const timeZoneExpression = getTimezoneExpression(input);\n const timeBit = fullDate\n ? `T${input.hour.toString().padStart(2, \"0\")}:${minute\n .toString()\n .padStart(2, \"0\")}:${second.toString().padStart(2, \"0\")}`\n : \"\";\n\n const datebit = `${windowYear(year).toString().padStart(4, \"0\")}-${month\n .toString()\n .padStart(2, \"0\")}-${day.toString().padStart(2, \"0\")}`;\n\n const dateString =\n utcOffset != undefined\n ? `${datebit}${timeBit}${getutcOffsetExpression(utcOffset)}`\n : `${datebit}${timeBit}`;\n\n const date = parseStringOrUndefined(dateString, timezone);\n\n return {\n year: windowYear(year),\n month,\n day,\n hour,\n minute,\n second,\n utcOffset,\n tzAbbreviation,\n timezone,\n date,\n dateString,\n tzSpecified: !!timeZoneExpression,\n };\n}\n\nfunction parseStringOrUndefined(dateString: string, timezone?: string) {\n const result = dayjs(dateString);\n // istanbul ignore else -- we should never get here, but this is a guard\n if (result.isValid()) {\n return timezone ? result?.tz(timezone, true).toDate() : result.toDate();\n }\n}\n\nfunction getutcOffsetExpression(utcOffset?: number) {\n if (utcOffset != undefined) {\n return `${utcOffset > 0 ? \"+\" : \"-\"}${Math.abs(utcOffset)\n .toString()\n .padStart(4, \"0\")}`;\n }\n}\n\nfunction getTimezoneExpression({\n utcOffset,\n timezone,\n tzAbbreviation,\n}: {\n utcOffset?: number;\n timezone?: string;\n tzAbbreviation?: string;\n}) {\n return getutcOffsetExpression(utcOffset) || timezone || tzAbbreviation || \"\";\n}\n\n/**\n * Accepts a raw date in the format YYYY/MM/DD (or YYYY-MM-DD or YYYY/M/D),\n * validates it,\n * and returns back a padded string in the format YYYY-MM-DD\n *\n */\nfunction yyyymmddValidateAndTrim(input: string, parseType: ParseType) {\n // Handle non-delimiters\n let inputToParse = input;\n // If we know the length is 8, we know there are no delimiters\n if (input.length === 8 && input.match(ONLY_NUMBERS)) {\n inputToParse = `${input.slice(0, 4)}-${input.slice(4, 6)}-${input.slice(\n 6,\n 8\n )}`;\n }\n const mdy = parseMDY({\n input: inputToParse,\n regex: REGEX_YYYY_MM_DD,\n });\n return buildDate(mdy, parseType === \"FULL\");\n}\n\n/**\n * Accepts a raw date in the format YYYY/MM/DD (or YYYY-MM-DD or YYYY/M/D),\n * validates it,\n * and returns back a padded string in the format YYYY-MM-DD\n *\n */\nfunction mmddyyyyValidateAndTrim(input: string, parseType: ParseType) {\n // Handle non-delimiters\n let inputToParse = input;\n if (input.length === 8 && input.match(ONLY_NUMBERS)) {\n inputToParse = `${input.slice(0, 2)}-${input.slice(2, 4)}-${input.slice(\n 4,\n 8\n )}`;\n }\n return buildDate(\n parseMDY({\n input: inputToParse,\n regex: REGEX_MM_DD_YYYY,\n }),\n parseType == \"FULL\"\n );\n}\n\n/**\n * Accepts a date in the format MM/DD/YY (or MM-DD-YY),\n * validates it,\n * and returns back a padded string in the format YYYY-MM-DD\n *\n * We don't want to support this, but here we are.\n */\nfunction mmddyyValidateAndTrim(input: string, parseType: ParseType) {\n let inputToParse = input;\n // Handle non-delimiters\n if (input.length === 6 && input.match(ONLY_NUMBERS)) {\n inputToParse = `${input.slice(0, 2)}-${input.slice(2, 4)}-${input.slice(\n 4,\n 6\n )}`;\n }\n\n // If there's an input to parse and the year is 4 digits, return undefined\n // Kind of gross preliminary regex matcher, but easier than updating the happy path REGEX_MM_DD_YY to filter out YYYYY\n if (inputToParse && inputToParse.match(/\\d{4}/)) {\n return;\n }\n\n return buildDate(\n parseMDY({\n input: inputToParse,\n regex: REGEX_MM_DD_YY,\n }),\n parseType == \"FULL\"\n );\n}\n\n/**\n * Returns the date formatted as ISO-8601 with no time or timezone if input is non-empty and a supported format.\n *\n * @deprecated You should not call this outside of DateWrapper. Let DateWrapper handle use cases where we guess at format or timezone.\n */\nexport function getDateIfSupported(\n input: string,\n options: {\n parseType: ParseType;\n supportedDateFormats: SupportedDateFormat[];\n } = {\n parseType: \"DATE_ONLY\",\n supportedDateFormats: [\"YYYYMMDD\", \"MMDDYYYY\", \"MMDDYY\"],\n }\n): DeserializedDateTime | undefined {\n const checkFunctions = [];\n if (options.supportedDateFormats.includes(\"YYYYMMDD\")) {\n checkFunctions.push(yyyymmddValidateAndTrim);\n }\n if (options.supportedDateFormats.includes(\"MMDDYYYY\")) {\n checkFunctions.push(mmddyyyyValidateAndTrim);\n }\n if (options.supportedDateFormats.includes(\"MMDDYY\")) {\n checkFunctions.push(mmddyyValidateAndTrim); // yuck.\n }\n for (const check of checkFunctions) {\n const result = check(input, options.parseType);\n if (result?.dateString) {\n return result;\n }\n }\n return undefined;\n}\n\n/**\n * Returns just the date part of the date\n *\n * @deprecated This is probably not a good idea since you lose timezone information.\n */\nexport function getDatePart(input: Date) {\n return input.toISOString().split(/[T|t|\\s]/)[0];\n}\n\n/**\n * Given a date string, returns the best guess as to the format\n */\nexport function determineDateFormat(\n input: string\n): SupportedDateFormat | \"UNKNOWN\" {\n if (input.match(REGEX_8601_ZULU)) {\n return \"YYYYMMDD\";\n }\n if (input.match(REGEX_YYYY_MM_DD)) {\n return \"YYYYMMDD\";\n }\n if (input.match(REGEX_MM_DD_YYYY)) {\n return \"MMDDYYYY\";\n }\n if (input.match(REGEX_MM_DD_YY)) {\n return \"MMDDYY\";\n }\n return \"UNKNOWN\";\n}\n","/**\n * Similar to postgres's coalesce function, this function will return the first\n * value if it is not null or undefined; otherwise, it will return the second\n * value. This differs from `getWithDefault` because it allows nulls and undefined\n * to be part of the return value, whereas `getWithDefault` requires a truthy\n * default value.\n *\n * This function is strongly typed.\n *\n * Credit: https://stackoverflow.com/a/54370023\n */\nexport function coalesce<T extends any[]>(\n ...args: T\n): ExcludeNullIfAnyNotNull<T>;\nexport function coalesce<T extends any[]>(...args: T): T[number] {\n for (let i = 0; i < args.length; i++) {\n // args[i] === args[i] is to avoid NaN, because NaN !== NaN\n if (args[i] != null && args[i] === args[i]) {\n return args[i];\n }\n }\n return args[args.length - 1];\n}\n\ntype ExcludeNullIfAnyNotNullHelper<T> = {\n [P in keyof T]-?:\n | (null extends T[P] ? never : null)\n | (undefined extends T[P] ? never : undefined);\n}[keyof T];\n\ntype ExcludeNullIfAnyNotNull<T extends any[]> = Exclude<\n T[number],\n ExcludeNullIfAnyNotNullHelper<T>\n>;\n\n/**\n * Similar to the above `coalesce`, this function will return the first truthy\n * value it encounters; otherwise, it will return the last value in the list.\n *\n * Note: \"Truthy\" here follows JavaScript semantics, meaning any non-falsy value.\n */\nexport function coalesceFirstTruthy<T extends any[]>(...args: T): T[number] {\n for (let i = 0; i < args.length; i++) {\n if (args[i]) {\n return args[i];\n }\n }\n return args[args.length - 1];\n}\n","import dayjs from \"dayjs\";\nimport dayjsTZ from \"dayjs/plugin/timezone\";\n\nimport { KazooError } from \"@kazoohr/types\";\n\nimport {\n getDateIfSupported,\n isValidIso8601DateWithTimezone,\n SupportedDateFormat,\n} from \"./dates/dateParsers\";\n\ndayjs.extend(dayjsTZ);\nexport class DateTimeWrapper {\n private _timezoneProvided: boolean = false;\n private _date: Date;\n\n constructor(\n input: string,\n supportedDateFormats: SupportedDateFormat[] = [\n \"YYYYMMDD\",\n \"MMDDYYYY\",\n \"MMDDYY\",\n ]\n ) {\n if (isValidIso8601DateWithTimezone(input)) {\n const parsed = dayjs(input);\n if (parsed.isValid()) {\n this._date = parsed.toDate();\n this._timezoneProvided = true;\n return;\n }\n }\n const asParsed = getDateIfSupported(input.trim(), {\n parseType: \"FULL\",\n supportedDateFormats,\n });\n if (!asParsed?.date) {\n throw new KazooError(\"packages.helpers.errors.invalidDate\", {\n translationKey: \"packages.helpers.errors.invalidDate\",\n translationvalues: {\n value: input,\n },\n });\n }\n this._date = asParsed.date;\n this._timezoneProvided = asParsed.tzSpecified;\n }\n\n get date() {\n return this._date;\n }\n\n // this is basically only used for asking about birthdays\n localDate(timezone: string) {\n return dayjs(this._date).tz(timezone.replace(\" \", \"_\"), false).date();\n }\n\n // this is basically only used for asking about birthdays\n localMonth(timezone: string) {\n return dayjs(this._date).tz(timezone.replace(\" \", \"_\"), false).month();\n }\n\n toString() {\n return this.toISOString();\n }\n\n toISOString() {\n // this lets you treat DateWrapper like a date in your serializers\n return this._date.toISOString();\n }\n\n applyTimeZone(timezone: string) {\n this._date = dayjs(this._date)\n .tz(timezone.replace(\" \", \"_\"), !this._timezoneProvided)\n .toDate();\n this._timezoneProvided = true;\n }\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport styles from \"./Header.scss\";\n\n/**\n * @typedef {object} HeaderProps\n * @prop {ReactElement | string} children\n * @prop {\"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\"} level - H tag level: i.e. h1, h2, etc...\n * @prop {string} [className=\"\"]\n * @prop {string} [size=\"extraLarge\"]\n * @prop {Boolean} [thick=false]\n * @prop {Boolean} [ellipsisOverflow=false]\n */\n\n/**\n * @deprecated talk with the design team about what you want to implement.\n * Normally, sizes h1 to h3 should be replaced by the `<Heading>` component,\n * but it can be that the Header component was misused, and it needs to be replaced by something else.\n * Every other size should be replaced by something that the design team will provide.\n * @typedef {object} Header\n * @param {HeaderProps & Object<string,any>} props\n */\nfunction Header({\n children,\n level,\n className = \"\",\n size = \"extraLarge\",\n thick = false,\n ellipsisOverflow = false,\n wrap = false,\n ...props\n}) {\n const HeaderTag = `h${level}`;\n\n const classNames = cx(\n styles[\"header\"],\n {\n [styles[\"header--wrap\"]]: wrap,\n [styles[\"header--ellipsis-overflow\"]]: ellipsisOverflow,\n [styles[\"header--extra-small\"]]: size === Header.SIZES.EXTRA_SMALL,\n [styles[\"header--small\"]]: size === Header.SIZES.SMALL,\n [styles[\"header--medium\"]]: size === Header.SIZES.MEDIUM,\n [styles[\"header--large\"]]: size === Header.SIZES.LARGE,\n [styles[\"header--extra-large\"]]: size === Header.SIZES.EXTRA_LARGE,\n [styles[\"header--mega\"]]: size === Header.SIZES.MEGA,\n [styles[\"header--thick\"]]:\n thick &&\n size !== Header.SIZES.EXTRA_LARGE &&\n size !== Header.SIZES.LARGE,\n [styles[\"header--h1\"]]: size === Header.SIZES.HEADING_ONE,\n [styles[\"header--h2\"]]: size === Header.SIZES.HEADING_TWO,\n [styles[\"header--h3\"]]: size === Header.SIZES.HEADING_THREE,\n [styles[\"header--h4\"]]: size === Header.SIZES.HEADING_FOUR,\n [styles[\"header--h5\"]]: size === Header.SIZES.HEADING_FIVE,\n [styles[\"header--h6\"]]: size === Header.SIZES.HEADING_SIX,\n },\n className\n );\n return (\n <HeaderTag {...props} className={classNames}>\n {children}\n </HeaderTag>\n );\n}\n\nHeader.SIZES = {\n HEADING_ONE: \"h1\",\n HEADING_TWO: \"h2\",\n HEADING_THREE: \"h3\",\n HEADING_FOUR: \"h4\",\n HEADING_FIVE: \"h5\",\n HEADING_SIX: \"h6\",\n MEGA: \"mega\",\n EXTRA_LARGE: \"extraLarge\",\n LARGE: \"large\",\n MEDIUM: \"medium\",\n SMALL: \"small\",\n EXTRA_SMALL: \"extraSmall\",\n};\n\nexport default Header;\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport styles from \"./Text.scss\";\nimport { TextSizes } from \"./types\";\n\n/**\n * A component that styles text with different options. This allows the\n * deduplication of many font settings throughout stylesheets with the simple\n * usage of this component.\n */\nexport function Text({\n size = \"regular\",\n children,\n className,\n color,\n paragraph,\n slim = false,\n ellipsisOverflow = false,\n maxChars,\n maxLines,\n textAlign = false,\n bold = false,\n wordBreak = false,\n ...elementProps\n}: React.PropsWithChildren<{\n /**\n * Additional class names to apply to the text\n */\n className?: string;\n /**\n * Text color\n */\n color?: string | null;\n /**\n * Size of the text shown\n */\n size?: TextSizes;\n /**\n * If true, the text will be slim\n */\n slim?: boolean;\n /**\n * Sets the underlying semantic tag to a paragraph tag `<p>` and applies styles specific to paragraphs\n */\n paragraph?: boolean;\n /**\n * Use ellipsis to hide overflow\n */\n ellipsisOverflow?: boolean;\n /**\n * Maximum number of characters to display\n */\n maxChars?: number;\n /**\n * Ellipsis overflow applies on X line\n */\n maxLines?: 2 | 3 | 4 | 5;\n /**\n * Text alignment\n */\n textAlign?: \"left\" | \"center\" | \"right\" | \"justify\" | false;\n /**\n * Sets the font-weight as bold\n */\n bold?: boolean;\n /**\n * Break up a single long-word based on container width\n */\n wordBreak?: boolean;\n /**\n * Additional element properties\n */\n [key: string]: any;\n}>) {\n if (!children) {\n return null;\n }\n\n const TagType = paragraph ? \"p\" : \"span\";\n\n let childrenToRender = children;\n if (typeof children === \"string\" && maxChars && children.length > maxChars) {\n childrenToRender = children.slice(0, maxChars).trim() + \"...\";\n }\n\n const addTitle =\n typeof childrenToRender === \"string\" &&\n maxChars &&\n (childrenToRender.length > maxChars || ellipsisOverflow)\n ? true\n : false;\n\n return (\n <TagType\n title={addTitle && typeof children === \"string\" ? children : undefined}\n {...(paragraph && { role: \"paragraph\" })}\n {...elementProps}\n className={cx(\n styles.text,\n {\n [styles[\"text--paragraph\"]]: paragraph,\n [styles[\"text--slim\"]]: slim,\n [styles[\"text--paragraph-large\"]]: size === \"paragraphLarge\",\n [styles[\"text--paragraph-default\"]]: size === \"paragraph\",\n [styles[\"text--paragraph-small\"]]: size === \"paragraphSmall\",\n [styles[\"text--paragraph-xsmall\"]]: size === \"paragraphXsmall\",\n [styles[\"text--extra-large\"]]: size === \"extraLarge\",\n [styles[\"text--large\"]]: size === \"large\",\n [styles[\"text--regular\"]]: size === \"regular\",\n [styles[\"text--small\"]]: size === \"small\",\n [styles[\"text--extra-small\"]]: size === \"extraSmall\",\n [styles[\"text--timestamp\"]]: size === \"timestamp\",\n [styles[\"text--subtitle-small\"]]: size === \"subtitleSmall\",\n [styles[\"text--text-align-left\"]]: textAlign === \"left\",\n [styles[\"text--text-align-center\"]]: textAlign === \"center\",\n [styles[\"text--text-align-right\"]]: textAlign === \"right\",\n [styles[\"text--text-align-justify\"]]: textAlign === \"justify\",\n [styles[\"text--bold\"]]: bold === true,\n [styles[\"text-break-word\"]]: wordBreak === true,\n [styles[\"ellipsis-overflow\"]]: ellipsisOverflow,\n [styles[\"trim--overflow--2\"]]: maxLines === 2,\n [styles[\"trim--overflow--3\"]]: maxLines === 3,\n [styles[\"trim--overflow--4\"]]: maxLines === 4,\n [styles[\"trim--overflow--5\"]]: maxLines === 5,\n },\n className\n )}\n style={{ color: color !== null ? color : undefined }}\n >\n {childrenToRender}\n </TagType>\n );\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n 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}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.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'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { isValidElementType } from 'react-is';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\n/* eslint-disable import/prefer-default-export */\nfunction invariant(condition, message) {\n if (condition) return;\n var error = new Error(\"loadable: \" + message);\n error.framesToPop = 1;\n error.name = 'Invariant Violation';\n throw error;\n}\nfunction warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"loadable: \" + message);\n}\n\nvar Context = /*#__PURE__*/\nReact.createContext();\n\nvar LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__';\nfunction getRequiredChunkKey(namespace) {\n return \"\" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY;\n}\n\nvar sharedInternals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getRequiredChunkKey: getRequiredChunkKey,\n invariant: invariant,\n Context: Context\n});\n\nvar LOADABLE_SHARED = {\n initialChunks: {}\n};\n\nvar STATUS_PENDING = 'PENDING';\nvar STATUS_RESOLVED = 'RESOLVED';\nvar STATUS_REJECTED = 'REJECTED';\n\nfunction resolveConstructor(ctor) {\n if (typeof ctor === 'function') {\n return {\n requireAsync: ctor,\n resolve: function resolve() {\n return undefined;\n },\n chunkName: function chunkName() {\n return undefined;\n }\n };\n }\n\n return ctor;\n}\n\nvar withChunkExtractor = function withChunkExtractor(Component) {\n return function (props) {\n return React.createElement(Context.Consumer, null, function (extractor) {\n return React.createElement(Component, Object.assign({\n __chunkExtractor: extractor\n }, props));\n });\n };\n};\n\nvar identity = function identity(v) {\n return v;\n};\n\nfunction createLoadable(_ref) {\n var _ref$defaultResolveCo = _ref.defaultResolveComponent,\n defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo,\n _render = _ref.render,\n onLoad = _ref.onLoad;\n\n function loadable(loadableConstructor, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ctor = resolveConstructor(loadableConstructor);\n var cache = {};\n /**\n * Cachekey represents the component to be loaded\n * if key changes - component has to be reloaded\n * @param props\n * @returns {null|Component}\n */\n\n function _getCacheKey(props) {\n if (options.cacheKey) {\n return options.cacheKey(props);\n }\n\n if (ctor.resolve) {\n return ctor.resolve(props);\n }\n\n return 'static';\n }\n /**\n * Resolves loaded `module` to a specific `Component\n * @param module\n * @param props\n * @param Loadable\n * @returns Component\n */\n\n\n function resolve(module, props, Loadable) {\n var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module);\n\n if (options.resolveComponent && !isValidElementType(Component)) {\n throw new Error(\"resolveComponent returned something that is not a React component!\");\n }\n\n hoistNonReactStatics(Loadable, Component, {\n preload: true\n });\n return Component;\n }\n\n var InnerLoadable =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(InnerLoadable, _React$Component);\n\n InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var cacheKey = _getCacheKey(props);\n\n return _extends({}, state, {\n cacheKey: cacheKey,\n // change of a key triggers loading state automatically\n loading: state.loading || state.cacheKey !== cacheKey\n });\n };\n\n function InnerLoadable(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n result: null,\n error: null,\n loading: true,\n cacheKey: _getCacheKey(props)\n };\n invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side\n\n if (props.__chunkExtractor) {\n // This module has been marked with no SSR\n if (options.ssr === false) {\n return _assertThisInitialized(_this);\n } // We run load function, we assume that it won't fail and that it\n // triggers a synchronous loading of the module\n\n\n ctor.requireAsync(props)[\"catch\"](function () {\n return null;\n }); // So we can require now the module synchronously\n\n _this.loadSync();\n\n props.__chunkExtractor.addChunk(ctor.chunkName(props));\n\n return _assertThisInitialized(_this);\n } // Client-side with `isReady` method present (SSR probably)\n // If module is already loaded, we use a synchronous loading\n // Only perform this synchronous loading if the component has not\n // been marked with no SSR, else we risk hydration mismatches\n\n\n if (options.ssr !== false && ( // is ready - was loaded in this session\n ctor.isReady && ctor.isReady(props) || // is ready - was loaded during SSR process\n ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) {\n _this.loadSync();\n }\n\n return _this;\n }\n\n var _proto = InnerLoadable.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // retrieve loading promise from a global cache\n\n var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache\n\n if (cachedPromise && cachedPromise.status === STATUS_REJECTED) {\n this.setCache();\n } // component might be resolved synchronously in the constructor\n\n\n if (this.state.loading) {\n this.loadAsync();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Component has to be reloaded on cacheKey change\n if (prevState.cacheKey !== this.state.cacheKey) {\n this.loadAsync();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n if (this.mounted) {\n this.setState(nextState, callback);\n }\n }\n /**\n * returns a cache key for the current props\n * @returns {Component|string}\n */\n ;\n\n _proto.getCacheKey = function getCacheKey() {\n return _getCacheKey(this.props);\n }\n /**\n * access the persistent cache\n */\n ;\n\n _proto.getCache = function getCache() {\n return cache[this.getCacheKey()];\n }\n /**\n * sets the cache value. If called without value sets it as undefined\n */\n ;\n\n _proto.setCache = function setCache(value) {\n if (value === void 0) {\n value = undefined;\n }\n\n cache[this.getCacheKey()] = value;\n };\n\n _proto.triggerOnLoad = function triggerOnLoad() {\n var _this2 = this;\n\n if (onLoad) {\n setTimeout(function () {\n onLoad(_this2.state.result, _this2.props);\n });\n }\n }\n /**\n * Synchronously loads component\n * target module is expected to already exists in the module cache\n * or be capable to resolve synchronously (webpack target=node)\n */\n ;\n\n _proto.loadSync = function loadSync() {\n // load sync is expecting component to be in the \"loading\" state already\n // sounds weird, but loading=true is the initial state of InnerLoadable\n if (!this.state.loading) return;\n\n try {\n var loadedModule = ctor.requireSync(this.props);\n var result = resolve(loadedModule, this.props, Loadable);\n this.state.result = result;\n this.state.loading = false;\n } catch (error) {\n console.error('loadable-components: failed to synchronously load component, which expected to be available', {\n fileName: ctor.resolve(this.props),\n chunkName: ctor.chunkName(this.props),\n error: error ? error.message : error\n });\n this.state.error = error;\n }\n }\n /**\n * Asynchronously loads a component.\n */\n ;\n\n _proto.loadAsync = function loadAsync() {\n var _this3 = this;\n\n var promise = this.resolveAsync();\n promise.then(function (loadedModule) {\n var result = resolve(loadedModule, _this3.props, {\n Loadable: Loadable\n });\n\n _this3.safeSetState({\n result: result,\n loading: false\n }, function () {\n return _this3.triggerOnLoad();\n });\n })[\"catch\"](function (error) {\n return _this3.safeSetState({\n error: error,\n loading: false\n });\n });\n return promise;\n }\n /**\n * Asynchronously resolves(not loads) a component.\n * Note - this function does not change the state\n */\n ;\n\n _proto.resolveAsync = function resolveAsync() {\n var _this4 = this;\n\n var _this$props = this.props,\n __chunkExtractor = _this$props.__chunkExtractor,\n forwardedRef = _this$props.forwardedRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"__chunkExtractor\", \"forwardedRef\"]);\n\n var promise = this.getCache();\n\n if (!promise) {\n promise = ctor.requireAsync(props);\n promise.status = STATUS_PENDING;\n this.setCache(promise);\n promise.then(function () {\n promise.status = STATUS_RESOLVED;\n }, function (error) {\n console.error('loadable-components: failed to asynchronously load component', {\n fileName: ctor.resolve(_this4.props),\n chunkName: ctor.chunkName(_this4.props),\n error: error ? error.message : error\n });\n promise.status = STATUS_REJECTED;\n });\n }\n\n return promise;\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n forwardedRef = _this$props2.forwardedRef,\n propFallback = _this$props2.fallback,\n __chunkExtractor = _this$props2.__chunkExtractor,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"forwardedRef\", \"fallback\", \"__chunkExtractor\"]);\n\n var _this$state = this.state,\n error = _this$state.error,\n loading = _this$state.loading,\n result = _this$state.result;\n\n if (options.suspense) {\n var cachedPromise = this.getCache() || this.loadAsync();\n\n if (cachedPromise.status === STATUS_PENDING) {\n throw this.loadAsync();\n }\n }\n\n if (error) {\n throw error;\n }\n\n var fallback = propFallback || options.fallback || null;\n\n if (loading) {\n return fallback;\n }\n\n return _render({\n fallback: fallback,\n result: result,\n options: options,\n props: _extends({}, props, {\n ref: forwardedRef\n })\n });\n };\n\n return InnerLoadable;\n }(React.Component);\n\n var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable);\n var Loadable = React.forwardRef(function (props, ref) {\n return React.createElement(EnhancedInnerLoadable, Object.assign({\n forwardedRef: ref\n }, props));\n }); // In future, preload could use `<link rel=\"preload\">`\n\n Loadable.preload = function (props) {\n ctor.requireAsync(props);\n };\n\n Loadable.load = function (props) {\n return ctor.requireAsync(props);\n };\n\n return Loadable;\n }\n\n function lazy(ctor, options) {\n return loadable(ctor, _extends({}, options, {\n suspense: true\n }));\n }\n\n return {\n loadable: loadable,\n lazy: lazy\n };\n}\n\nfunction defaultResolveComponent(loadedModule) {\n // eslint-disable-next-line no-underscore-dangle\n return loadedModule.__esModule ? loadedModule[\"default\"] : loadedModule[\"default\"] || loadedModule;\n}\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable =\n/*#__PURE__*/\ncreateLoadable({\n defaultResolveComponent: defaultResolveComponent,\n render: function render(_ref) {\n var Component = _ref.result,\n props = _ref.props;\n return React.createElement(Component, props);\n }\n}),\n loadable = _createLoadable.loadable,\n lazy = _createLoadable.lazy;\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable$1 =\n/*#__PURE__*/\ncreateLoadable({\n onLoad: function onLoad(result, props) {\n if (result && props.forwardedRef) {\n if (typeof props.forwardedRef === 'function') {\n props.forwardedRef(result);\n } else {\n props.forwardedRef.current = result;\n }\n }\n },\n render: function render(_ref) {\n var result = _ref.result,\n props = _ref.props;\n\n if (props.children) {\n return props.children(result);\n }\n\n return null;\n }\n}),\n loadable$1 = _createLoadable$1.loadable,\n lazy$1 = _createLoadable$1.lazy;\n\n/* eslint-disable no-underscore-dangle, camelcase */\nvar BROWSER = typeof window !== 'undefined';\nfunction loadableReady(done, _temp) {\n if (done === void 0) {\n done = function done() {};\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? '' : _ref$namespace;\n\n if (!BROWSER) {\n warn('`loadableReady()` must be called in browser only');\n done();\n return Promise.resolve();\n }\n\n var requiredChunks = null;\n\n if (BROWSER) {\n var id = getRequiredChunkKey(namespace);\n var dataElement = document.getElementById(id);\n\n if (dataElement) {\n requiredChunks = JSON.parse(dataElement.textContent);\n var extElement = document.getElementById(id + \"_ext\");\n\n if (extElement) {\n var _JSON$parse = JSON.parse(extElement.textContent),\n namedChunks = _JSON$parse.namedChunks;\n\n namedChunks.forEach(function (chunkName) {\n LOADABLE_SHARED.initialChunks[chunkName] = true;\n });\n } else {\n // version mismatch\n throw new Error('loadable-component: @loadable/server does not match @loadable/component');\n }\n }\n }\n\n if (!requiredChunks) {\n warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side');\n done();\n return Promise.resolve();\n }\n\n var resolved = false;\n return new Promise(function (resolve) {\n window.__LOADABLE_LOADED_CHUNKS__ = window.__LOADABLE_LOADED_CHUNKS__ || [];\n var loadedChunks = window.__LOADABLE_LOADED_CHUNKS__;\n var originalPush = loadedChunks.push.bind(loadedChunks);\n\n function checkReadyState() {\n if (requiredChunks.every(function (chunk) {\n return loadedChunks.some(function (_ref2) {\n var chunks = _ref2[0];\n return chunks.indexOf(chunk) > -1;\n });\n })) {\n if (!resolved) {\n resolved = true;\n resolve();\n }\n }\n }\n\n loadedChunks.push = function () {\n originalPush.apply(void 0, arguments);\n checkReadyState();\n };\n\n checkReadyState();\n }).then(done);\n}\n\n/* eslint-disable no-underscore-dangle */\nvar loadable$2 = loadable;\nloadable$2.lib = loadable$1;\nvar lazy$2 = lazy;\nlazy$2.lib = lazy$1;\nvar __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals;\n\nexport default loadable$2;\nexport { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };\n","import React from \"react\";\n\nimport loadable from \"@loadable/component\";\n\n/**\n * A wrapper to help with breaking apart our React frontend apps in logical\n * segments in ways that our bundlers can't automatically infer. This helps\n * a ton to ensure a smooth UX with really good cachables for users.\n *\n * @example\n * ```ts\n * import { asyncComponent } from \"@kazoohr/confetti/asyncComponent\";\n *\n * const ActionList = asyncComponent({\n * module: () => import(\"./ActionList\"),\n * component: (module) => module[\"default\"],\n * });\n * ```\n */\nexport function asyncComponent<Module extends Promise<any>, Props>({\n module,\n component,\n fallback,\n}: {\n module: () => Module;\n component: (module: Awaited<Module>) => React.ComponentType<Props>;\n /**\n * Displayed while the component is loading\n */\n fallback?: JSX.Element;\n}): React.ComponentType<Props> {\n // Ignored because this is a library component, and we want to make sure that\n // no matter what loadable library we use in the future, we don't want to leak\n // any of the underlying implementation into the public API.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return loadable(module, {\n resolveComponent: component,\n fallback,\n }) as React.ComponentType<Props>;\n}\n","import { asyncComponent } from \"../../../asyncComponent\";\n\nimport { IconDictionary } from \"./types\";\n\nexport const DEPRECATED_ICONS = [\n \"back\",\n \"remove\",\n \"find\",\n \"surveys\",\n \"datepicker_nav\",\n \"check\",\n \"bell\",\n \"open_caret\",\n \"open_caret_left\",\n \"open_caret_up\",\n \"open_caret_down\",\n \"company_links\",\n \"birthday_cake\",\n \"anniversary_cal\",\n \"rating\",\n \"high_five_hollow\",\n \"up_arrow\",\n \"down_arrow\",\n \"filter_menu\",\n \"link_feature\",\n \"nomination\",\n \"kazoo_logo\",\n];\n\nexport const IconMap: Record<\n IconDictionary | (string & Record<never, never>),\n any\n> = {\n add_user: asyncComponent({\n module: () => import(\"./icons/AddUser\"),\n component: (module) => module.add_user,\n }),\n admin: asyncComponent({\n module: () => import(\"./icons/Admin\"),\n component: (module) => module.admin,\n }),\n anniversary: asyncComponent({\n module: () => import(\"./icons/Anniversary\"),\n component: (module) => module.anniversary,\n }),\n arrow_up: asyncComponent({\n module: () => import(\"./icons/ArrowUp\"),\n component: (module) => module.arrow_up,\n }),\n arrow_right: asyncComponent({\n module: () => import(\"./icons/ArrowRight\"),\n component: (module) => module.arrow_right,\n }),\n arrow_down: asyncComponent({\n module: () => import(\"./icons/ArrowDown\"),\n component: (module) => module.arrow_down,\n }),\n arrow_left: asyncComponent({\n module: () => import(\"./icons/ArrowLeft\"),\n component: (module) => module.arrow_left,\n }),\n attachment: asyncComponent({\n module: () => import(\"./icons/Attachment\"),\n component: (module) => module.attachment,\n }),\n birthday: asyncComponent({\n module: () => import(\"./icons/Birthday\"),\n component: (module) => module.birthday,\n }),\n calendar: asyncComponent({\n module: () => import(\"./icons/Calendar\"),\n component: (module) => module.calendar,\n }),\n caret_down: asyncComponent({\n module: () => import(\"./icons/CaretDown\"),\n component: (module) => module.caret_down,\n }),\n caret_dn: asyncComponent({\n module: () => import(\"./icons/CaretDn\"),\n component: (module) => module.caret_dn,\n }),\n caret_left: asyncComponent({\n module: () => import(\"./icons/CaretLeft\"),\n component: (module) => module.caret_left,\n }),\n caret_right: asyncComponent({\n module: () => import(\"./icons/CaretRight\"),\n component: (module) => module.caret_right,\n }),\n caret_up: asyncComponent({\n module: () => import(\"./icons/CaretUp\"),\n component: (module) => module.caret_up,\n }),\n check_in: asyncComponent({\n module: () => import(\"./icons/CheckIn\"),\n component: (module) => module.check_in,\n }),\n check_seal: asyncComponent({\n module: () => import(\"./icons/CheckSeal\"),\n component: (module) => module.check_seal,\n }),\n checkmark: asyncComponent({\n module: () => import(\"./icons/Checkmark\"),\n component: (module) => module.checkmark,\n }),\n close: asyncComponent({\n module: () => import(\"./icons/Close\"),\n component: (module) => module.close,\n }),\n clock: asyncComponent({\n module: () => import(\"./icons/Clock\"),\n component: (module) => module.clock,\n }),\n cloud_download: asyncComponent({\n module: () => import(\"./icons/CloudDownload\"),\n component: (module) => module.cloud_download,\n }),\n comment: asyncComponent({\n module: () => import(\"./icons/Comment\"),\n component: (module) => module.comment,\n }),\n copy: asyncComponent({\n module: () => import(\"./icons/Copy\"),\n component: (module) => module.copy,\n }),\n dot: asyncComponent({\n module: () => import(\"./icons/Dot\"),\n component: (module) => module.dot,\n }),\n download: asyncComponent({\n module: () => import(\"./icons/Download\"),\n component: (module) => module.download,\n }),\n drag: asyncComponent({\n module: () => import(\"./icons/Drag\"),\n component: (module) => module.drag,\n }),\n feedback: asyncComponent({\n module: () => import(\"./icons/Feedback\"),\n component: (module) => module.feedback,\n }),\n filter: asyncComponent({\n module: () => import(\"./icons/Filter\"),\n component: (module) => module.filter,\n }),\n flag: asyncComponent({\n module: () => import(\"./icons/Flag\"),\n component: (module) => module.flag,\n }),\n goal_count: asyncComponent({\n module: () => import(\"./icons/GoalCount\"),\n component: (module) => module.goal_count,\n }),\n earn: asyncComponent({\n module: () => import(\"./icons/Earn\"),\n component: (module) => module.earn,\n }),\n email: asyncComponent({\n module: () => import(\"./icons/Email\"),\n component: (module) => module.email,\n }),\n expired: asyncComponent({\n module: () => import(\"./icons/Expired\"),\n component: (module) => module.expired,\n }),\n eye: asyncComponent({\n module: () => import(\"./icons/Eye\"),\n component: (module) => module.eye,\n }),\n giphy: asyncComponent({\n module: () => import(\"./icons/Giphy\"),\n component: (module) => module.giphy,\n }),\n help: asyncComponent({\n module: () => import(\"./icons/Help\"),\n component: (module) => module.help,\n }),\n home: asyncComponent({\n module: () => import(\"./icons/Home\"),\n component: (module) => module.home,\n }),\n goal_percent: asyncComponent({\n module: () => import(\"./icons/GoalPercent\"),\n component: (module) => module.goal_percent,\n }),\n goal_task: asyncComponent({\n module: () => import(\"./icons/GoalTask\"),\n component: (module) => module.goal_task,\n }),\n goals: asyncComponent({\n module: () => import(\"./icons/Goals\"),\n component: (module) => module.goals,\n }),\n hamburger: asyncComponent({\n module: () => import(\"./icons/Hamburger\"),\n component: (module) => module.hamburger,\n }),\n high_five: asyncComponent({\n module: () => import(\"./icons/HighFive\"),\n component: (module) => module.high_five,\n }),\n horizontal_line: asyncComponent({\n module: () => import(\"./icons/HorizontalLine\"),\n component: (module) => module.horizontal_line,\n }),\n hourglass: asyncComponent({\n module: () => import(\"./icons/Hourglass\"),\n component: (module) => module.hourglass,\n }),\n image: asyncComponent({\n module: () => import(\"./icons/Image\"),\n component: (module) => module.image,\n }),\n image_file: asyncComponent({\n module: () => import(\"./icons/ImageFile\"),\n component: (module) => module.image_file,\n }),\n info: asyncComponent({\n module: () => import(\"./icons/Info\"),\n component: (module) => module.info,\n }),\n insights: asyncComponent({\n module: () => import(\"./icons/Insights\"),\n component: (module) => module.insights,\n }),\n link: asyncComponent({\n module: () => import(\"./icons/Link\"),\n component: (module) => module.link,\n }),\n link_arrow: asyncComponent({\n module: () => import(\"./icons/LinkArrow\"),\n component: (module) => module.link_arrow,\n }),\n loading: asyncComponent({\n module: () => import(\"./icons/Loading\"),\n component: (module) => module.loading,\n }),\n lock: asyncComponent({\n module: () => import(\"./icons/Lock\"),\n component: (module) => module.lock,\n }),\n meatball_menu: asyncComponent({\n module: () => import(\"./icons/MeatballMenu\"),\n component: (module) => module.meatball_menu,\n }),\n nomination: asyncComponent({\n module: () => import(\"./icons/Nomination\"),\n component: (module) => module.nomination,\n }),\n pencil: asyncComponent({\n module: () => import(\"./icons/Pencil\"),\n component: (module) => module.pencil,\n }),\n people: asyncComponent({\n module: () => import(\"./icons/People\"),\n component: (module) => module.people,\n }),\n pin: asyncComponent({\n module: () => import(\"./icons/Pin\"),\n component: (module) => module.pin,\n }),\n pinned_icon_award: asyncComponent({\n module: () => import(\"./icons/PinnedIconAward\"),\n component: (module) => module.pinned_icon_award,\n }),\n pinned_icon_bright_idea: asyncComponent({\n module: () => import(\"./icons/PinnedIconBrightIdea\"),\n component: (module) => module.pinned_icon_bright_idea,\n }),\n pinned_icon_bullseye: asyncComponent({\n module: () => import(\"./icons/PinnedIconBullseye\"),\n component: (module) => module.pinned_icon_bullseye,\n }),\n pinned_icon_champagne: asyncComponent({\n module: () => import(\"./icons/PinnedIconChampagne\"),\n component: (module) => module.pinned_icon_champagne,\n }),\n pinned_icon_cheer: asyncComponent({\n module: () => import(\"./icons/PinnedIconCheer\"),\n component: (module) => module.pinned_icon_cheer,\n }),\n pinned_icon_crown: asyncComponent({\n module: () => import(\"./icons/PinnedIconCrown\"),\n component: (module) => module.pinned_icon_crown,\n }),\n pinned_icon_diamond: asyncComponent({\n module: () => import(\"./icons/PinnedIconDiamond\"),\n component: (module) => module.pinned_icon_diamond,\n }),\n pinned_icon_hole_in_one: asyncComponent({\n module: () => import(\"./icons/PinnedIconHoleInOne\"),\n component: (module) => module.pinned_icon_hole_in_one,\n }),\n pinned_icon_medal: asyncComponent({\n module: () => import(\"./icons/PinnedIconMedal\"),\n component: (module) => module.pinned_icon_medal,\n }),\n pinned_icon_metrics: asyncComponent({\n module: () => import(\"./icons/PinnedIconMetrics\"),\n component: (module) => module.pinned_icon_metrics,\n }),\n pinned_icon_pin: asyncComponent({\n module: () => import(\"./icons/PinnedIconPin\"),\n component: (module) => module.pinned_icon_pin,\n }),\n pinned_icon_rock_and_roll: asyncComponent({\n module: () => import(\"./icons/PinnedIconRockAndRoll\"),\n component: (module) => module.pinned_icon_rock_and_roll,\n }),\n pinned_icon_rocket: asyncComponent({\n module: () => import(\"./icons/PinnedIconRocket\"),\n component: (module) => module.pinned_icon_rocket,\n }),\n pinned_icon_strength: asyncComponent({\n module: () => import(\"./icons/PinnedIconStrength\"),\n component: (module) => module.pinned_icon_strength,\n }),\n pinned_icon_teddy_bear: asyncComponent({\n module: () => import(\"./icons/PinnedIconTeddyBear\"),\n component: (module) => module.pinned_icon_teddy_bear,\n }),\n platform_logo: asyncComponent({\n module: () => import(\"./icons/PlatformLogo\"),\n component: (module) => module.platform_logo,\n }),\n plus: asyncComponent({\n module: () => import(\"./icons/Plus\"),\n component: (module) => module.plus,\n }),\n notification: asyncComponent({\n module: () => import(\"./icons/Notification\"),\n component: (module) => module.notification,\n }),\n private_eye: asyncComponent({\n module: () => import(\"./icons/PrivateEye\"),\n component: (module) => module.private_eye,\n }),\n private_push_pin: asyncComponent({\n module: () => import(\"./icons/PrivatePushPin\"),\n component: (module) => module.private_push_pin,\n }),\n progress_circle: asyncComponent({\n module: () => import(\"./icons/ProgressCircle\"),\n component: (module) => module.progress_circle,\n }),\n push_pin: asyncComponent({\n module: () => import(\"./icons/PushPin\"),\n component: (module) => module.push_pin,\n }),\n recognition: asyncComponent({\n module: () => import(\"./icons/Recognition\"),\n component: (module) => module.recognition,\n }),\n rewards: asyncComponent({\n module: () => import(\"./icons/Rewards\"),\n component: (module) => module.rewards,\n }),\n roadmap: asyncComponent({\n module: () => import(\"./icons/Roadmap\"),\n component: (module) => module.roadmap,\n }),\n send_recognition: asyncComponent({\n module: () => import(\"./icons/SendRecognition\"),\n component: (module) => module.send_recognition,\n }),\n share_link: asyncComponent({\n module: () => import(\"./icons/ShareLink\"),\n component: (module) => module.share_link,\n }),\n skill: asyncComponent({\n module: () => import(\"./icons/Skill\"),\n component: (module) => module.skill,\n }),\n smiley: asyncComponent({\n module: () => import(\"./icons/Smiley\"),\n component: (module) => module.smiley,\n }),\n search: asyncComponent({\n module: () => import(\"./icons/Search\"),\n component: (module) => module.search,\n }),\n survey: asyncComponent({\n module: () => import(\"./icons/Survey\"),\n component: (module) => module.survey,\n }),\n surveys: asyncComponent({\n module: () => import(\"./icons/Survey\"),\n component: (module) => module.survey,\n }),\n syncs: asyncComponent({\n module: () => import(\"./icons/Syncs\"),\n component: (module) => module.syncs,\n }),\n talent_review: asyncComponent({\n module: () => import(\"./icons/TalentReview\"),\n component: (module) => module.talent_review,\n }),\n talent_review_insights: asyncComponent({\n module: () => import(\"./icons/TalentReviewInsights\"),\n component: (module) => module.talent_review_insights,\n }),\n task_completed: asyncComponent({\n module: () => import(\"./icons/TaskCompleted\"),\n component: (module) => module.task_completed,\n }),\n teams: asyncComponent({\n module: () => import(\"./icons/Teams\"),\n component: (module) => module.teams,\n }),\n text_bold: asyncComponent({\n module: () => import(\"./icons/TextBold\"),\n component: (module) => module.text_bold,\n }),\n text_bulletlist: asyncComponent({\n module: () => import(\"./icons/TextBulletList\"),\n component: (module) => module.text_bulletlist,\n }),\n text_input: asyncComponent({\n module: () => import(\"./icons/TextInput\"),\n component: (module) => module.text_input,\n }),\n text_italic: asyncComponent({\n module: () => import(\"./icons/TextItalic\"),\n component: (module) => module.text_italic,\n }),\n text_numberlist: asyncComponent({\n module: () => import(\"./icons/TextNumberList\"),\n component: (module) => module.text_numberlist,\n }),\n text_underline: asyncComponent({\n module: () => import(\"./icons/TextUnderline\"),\n component: (module) => module.text_underline,\n }),\n toggle: asyncComponent({\n module: () => import(\"./icons/Toggle\"),\n component: (module) => module.toggle,\n }),\n trash: asyncComponent({\n module: () => import(\"./icons/Trash\"),\n component: (module) => module.trash,\n }),\n trend_down: asyncComponent({\n module: () => import(\"./icons/TrendDown\"),\n component: (module) => module.trend_down,\n }),\n trend_up: asyncComponent({\n module: () => import(\"./icons/TrendUp\"),\n component: (module) => module.trend_up,\n }),\n warning: asyncComponent({\n module: () => import(\"./icons/Warning\"),\n component: (module) => module.warning,\n }),\n up_down_caret: asyncComponent({\n module: () => import(\"./icons/UpDownCaret\"),\n component: (module) => module.up_down_caret,\n }),\n vertical_line: asyncComponent({\n module: () => import(\"./icons/VerticalLine\"),\n component: (module) => module.vertical_line,\n }),\n warning_no_outline: asyncComponent({\n module: () => import(\"./icons/WarningNoOutline\"),\n component: (module) => module.warning_no_outline,\n }),\n\n // Deprecated icons below\n // --------------------------------------------------------------------------\n\n anniversary_cal: asyncComponent({\n module: () => import(\"./icons/Anniversary\"),\n component: (module) => module.anniversary,\n }),\n back: asyncComponent({\n module: () => import(\"./icons/ArrowLeft\"),\n component: (module) => module.arrow_left,\n }),\n bell: asyncComponent({\n module: () => import(\"./icons/Notification\"),\n component: (module) => module.notification,\n }),\n birthday_cake: asyncComponent({\n module: () => import(\"./icons/Birthday\"),\n component: (module) => module.birthday,\n }),\n check: asyncComponent({\n module: () => import(\"./icons/Checkmark\"),\n component: (module) => module.checkmark,\n }),\n company_links: asyncComponent({\n module: () => import(\"./icons/Link\"),\n component: (module) => module.link,\n }),\n datepicker_nav: asyncComponent({\n module: () => import(\"./icons/ArrowLeft\"),\n component: (module) => module.arrow_left,\n }),\n down_arrow: asyncComponent({\n module: () => import(\"./icons/CaretDn\"),\n component: (module) => module.caret_dn,\n }),\n filter_menu: asyncComponent({\n module: () => import(\"./icons/Filter\"),\n component: (module) => module.filter,\n }),\n find: asyncComponent({\n module: () => import(\"./icons/Search\"),\n component: (module) => module.search,\n }),\n high_five_hollow: asyncComponent({\n module: () => import(\"./icons/HighFive\"),\n component: (module) => module.high_five,\n }),\n kazoo_logo: asyncComponent({\n module: () => import(\"./icons/KazooLogo\"),\n component: (module) => module.kazoo_logo,\n }),\n link_feature: asyncComponent({\n module: () => import(\"./icons/Link\"),\n component: (module) => module.link,\n }),\n open_caret: asyncComponent({\n module: () => import(\"./icons/CaretRight\"),\n component: (module) => module.caret_right,\n }),\n open_caret_down: asyncComponent({\n module: () => import(\"./icons/CaretDn\"),\n component: (module) => module.caret_dn,\n }),\n open_caret_left: asyncComponent({\n module: () => import(\"./icons/CaretLeft\"),\n component: (module) => module.caret_left,\n }),\n open_caret_up: asyncComponent({\n module: () => import(\"./icons/CaretUp\"),\n component: (module) => module.caret_up,\n }),\n rating: asyncComponent({\n module: () => import(\"./icons/Earn\"),\n component: (module) => module.earn,\n }),\n remove: asyncComponent({\n module: () => import(\"./icons/Close\"),\n component: (module) => module.close,\n }),\n up_arrow: asyncComponent({\n module: () => import(\"./icons/CaretUp\"),\n component: (module) => module.caret_up,\n }),\n};\n","import React from \"react\";\n\nimport { IconMap } from \"./IconMap\";\nimport { IconDictionary } from \"./types\";\n\nexport const regular = (\n color: string | undefined,\n icon: IconDictionary | (string & Record<never, never>)\n) => {\n const Icon = IconMap[icon];\n if (!Icon) {\n return null;\n }\n return (\n <>\n <g\n fill=\"none\"\n stroke={color}\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n strokeMiterlimit=\"4\"\n strokeWidth=\"1.5\"\n >\n <Icon variant=\"regular\" color={color} />\n </g>\n </>\n );\n};\n\nexport const thin = (\n color: string | undefined,\n icon: IconDictionary | (string & Record<never, never>)\n) => {\n const Icon = IconMap[icon];\n if (!Icon) {\n return null;\n }\n return (\n <>\n <g\n fill=\"none\"\n stroke={color}\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n strokeMiterlimit=\"4\"\n strokeWidth=\"1\"\n >\n <Icon variant=\"thin\" color={color} />\n </g>\n </>\n );\n};\n\nexport const filled = (\n color: string | undefined,\n icon: IconDictionary | (string & Record<never, never>)\n) => {\n const Icon = IconMap[icon];\n if (!Icon) {\n return null;\n }\n return (\n <>\n <g\n fill={color}\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n strokeMiterlimit=\"4\"\n >\n <Icon variant=\"filled\" color={color} />\n </g>\n </>\n );\n};\n\nexport const IconTypes = {\n regular,\n thin,\n filled,\n};\n","import React from \"react\";\n\nimport { BrandingUtilities } from \"../../styles/branding-utilities\";\n\nimport colors from \"./Icon.scss\";\nimport { DEPRECATED_ICONS } from \"./IconMap\";\nimport { IconTypes } from \"./IconTypes\";\nimport { IconDictionary } from \"./types\";\n\nexport const SIZES = {\n ExtraSmall: 8,\n Small: 12,\n Medium: 16,\n Large: 24,\n};\n\nexport const VARIANTS = {\n regular: \"regular\",\n filled: \"filled\",\n thin: \"thin\",\n};\n\nexport interface IconProps {\n /**\n * Which icon to render. Note: the awkward type here allows for accepting a\n * string (for legacy support) WITH helpful autocomplete of valid icons.\n */\n icon: IconDictionary;\n /**\n * Class name to apply to the icon box.\n */\n className?: string;\n /**\n * Test ID for the icon, for testing purposes\n */\n \"data-testid\"?: string;\n /**\n * Manual color to apply.\n * @deprecated Don't use this. Style with `currentColor` where possible\n */\n color?: string;\n /**\n * Size (square) of the icon. Suggested values are: 8, 12, 16, 24\n *\n * Default: `16`\n */\n size?: number;\n /**\n * The variant of the icon. If the variant for that icon does not exist,\n * icons will render the regular variant by default.\n *\n * Default: `regular`\n */\n variant?: \"regular\" | \"filled\" | \"thin\";\n /**\n * If `true`, renders the icon as inert (non-focusable, non-interactive).\n */\n decorative?: boolean;\n /**\n * The pointerEvents property to pass to the icon style.\n */\n pointerEvents?:\n | \"auto\"\n | \"none\"\n | \"visiblePainted\"\n | \"visibleFill\"\n | \"visibleStroke\"\n | \"visible\"\n | \"painted\"\n | \"fill\"\n | \"stroke\"\n | \"all\"\n | \"inherit\"\n | \"initial\"\n | \"revert\"\n | \"revert\"\n | \"unset\";\n}\n\n/**\n * An component that renders an SVG icon from IconDictionary.\n */\nexport function Icon({\n icon,\n className = \"\",\n \"data-testid\": dataTestId,\n color = colors.defaultText,\n size = 16,\n variant = \"regular\",\n decorative = false,\n pointerEvents,\n}: IconProps) {\n const sizeStyle = {\n width: size,\n height: size,\n };\n\n const viewBox = getViewbox(icon);\n const classes = className.split(\" \");\n const decorativeProps = decorative\n ? { \"aria-hidden\": true, role: \"none\", focusable: false }\n : {};\n\n let iconColor = \"currentColor\";\n\n React.useEffect(() => {\n if (DEPRECATED_ICONS.includes(icon)) {\n // the icon is deprecated and should be removed for another icon so we can completely remove all from code.\n // eslint-disable-next-line no-console\n console.warn(\n `The following icons in use are now deprecated: ${JSON.stringify(\n icon\n )}. Please use an alternative.`\n );\n }\n }, []);\n\n if (BrandingUtilities.hasBrandingClass(classes)) {\n if (color != colors.defaultText) {\n // the color value is set to the non default and we have a branding css value,\n // so we will ignore the color argument.\n // we have to continue supporting a default color for backwards-compatibility reasons.\n // eslint-disable-next-line no-console\n console.warn(\n `You have both specified a branding css class and set the color value to ${color}. Ignoring the color value of ${color}.`\n );\n }\n } else {\n // ok, use the color value they passed in\n iconColor = color;\n }\n\n return (\n <svg\n viewBox={viewBox}\n className={className}\n style={sizeStyle}\n data-testid={`${dataTestId || \"icon\"}-svg`}\n {...(pointerEvents ? { pointerEvents } : {})}\n {...decorativeProps}\n >\n {IconTypes[variant](iconColor, icon)}\n </svg>\n );\n}\n\n// These are icons that used a weird method of rendering. They are, for whatever\n// reason, sized for a smaller viewbox than anything else. Ideally, we want to\n// replace these one-offs and odd viewboxes to icons that are sized appropriately\n// for the rest of the icons.\n\nconst EXTRA_LARGE_VIEWBOX_ICONS = [\n \"pinned_icon_award\",\n \"pinned_icon_bright_idea\",\n \"pinned_icon_bullseye\",\n \"pinned_icon_champagne\",\n \"pinned_icon_cheer\",\n \"pinned_icon_crown\",\n \"pinned_icon_diamond\",\n \"pinned_icon_hole_in_one\",\n \"pinned_icon_medal\",\n \"pinned_icon_metrics\",\n \"pinned_icon_pin\",\n \"pinned_icon_rock_and_roll\",\n \"pinned_icon_rocket\",\n \"pinned_icon_strength\",\n \"pinned_icon_teddy_bear\",\n];\n\nconst LARGE_VIEWBOX_ICONS = [\"image_file\", \"cloud_download\"];\n\nconst SMALL_VIEWBOX_ICONS = [\n \"dot\",\n \"progress_circle\",\n \"caret_down\",\n \"up_down_caret\",\n \"nomination\",\n];\n\nconst EXTRA_SMALL_VIEWBOX_ICONS = [\"private_push_pin\"];\n\nconst VIEWBOX_SIZES = {\n extraLarge: `0 0 48 48`,\n large: `0 0 40 40`,\n default: \"0 0 24 24\",\n small: \"0 0 18 18\",\n extraSmall: \"0 0 13 13\",\n};\n\nfunction getViewbox(icon: string) {\n if (EXTRA_LARGE_VIEWBOX_ICONS.includes(icon)) {\n return VIEWBOX_SIZES.extraLarge;\n }\n\n if (LARGE_VIEWBOX_ICONS.includes(icon)) {\n return VIEWBOX_SIZES.large;\n }\n\n if (SMALL_VIEWBOX_ICONS.includes(icon)) {\n return VIEWBOX_SIZES.small;\n }\n\n if (EXTRA_SMALL_VIEWBOX_ICONS.includes(icon)) {\n return VIEWBOX_SIZES.extraSmall;\n }\n\n return VIEWBOX_SIZES.default;\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport styles from \"./Loader.scss\";\n\nconst DEFAULT_COLOR = styles.systemDefault;\n\n/**\n * Size options for the Loader component\n */\ntype LoaderSize = \"default\" | \"small\" | \"extraSmall\";\n\n/**\n * Props for the Loader component\n */\nexport interface LoaderProps {\n /**\n * Size of the Loader component\n * @default \"default\"\n */\n size?: LoaderSize;\n\n /**\n * Color of the stroke of the Loader\n * @default \"systemDefault\"\n */\n color?: string;\n\n /**\n * Loader horizontally centered with a margin-top applied\n * @default false\n */\n centered?: boolean;\n\n /**\n * Loader horizontally centered. No margin-top applied\n * @default false\n */\n horizontallyCentered?: boolean;\n\n /**\n * Only SVG for embedding rendered\n * @default false\n */\n nowrapper?: boolean;\n\n /**\n * Prop used to test this Loader. It will render as a data-testid prop\n */\n testId?: string;\n}\n\n/**\n * A Loading Icon.\n */\nexport function Loader(props: LoaderProps) {\n const {\n size = \"default\",\n centered = false,\n color = DEFAULT_COLOR,\n horizontallyCentered = false,\n nowrapper = false,\n } = props;\n\n const getSizeModifier = (): string => {\n return cx({\n [styles[\"loader--small\"]]: size === \"small\",\n [styles[\"loader--default\"]]: size === \"default\",\n [styles[\"loader--extra-small\"]]: size === \"extraSmall\",\n });\n };\n\n const loaderClassName = cx(styles[\"loading-overlay\"], getSizeModifier());\n\n const wrapper = cx({\n [styles[\"loader--center\"]]: centered,\n [styles[\"loader--horizontallyCentered\"]]: horizontallyCentered,\n });\n\n const spinner = (\n <svg className={styles.circular} viewBox=\"25 25 50 50\">\n <circle\n className={styles.path}\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"5\"\n strokeMiterlimit=\"10\"\n stroke={color}\n />\n </svg>\n );\n\n if (nowrapper) {\n return spinner;\n } else {\n return (\n <div className={wrapper} data-testid={props.testId}>\n <div className={loaderClassName}>\n <div className={styles.loader}>{spinner}</div>\n </div>\n </div>\n );\n }\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport styles from \"./Spacer.scss\";\n\nconst sizeMap = {\n default: styles.default,\n large: styles.large,\n small: styles.small,\n medium: styles.medium,\n little: styles.little,\n \"extra-large\": styles[\"extra-large\"],\n tiny: styles.tiny,\n};\n\n/**\n * Props for the Spacer component.\n */\ninterface SpacerProps {\n /**\n * Size of the spacing\n */\n size?:\n | \"tiny\"\n | \"small\"\n | \"little\"\n | \"default\"\n | \"medium\"\n | \"large\"\n | \"extra-large\";\n /**\n * If a \"strict\" prop is provided, the spacer will not resize based on the screen dimensions\n */\n strict?: boolean;\n /**\n * The orientation of the spacer. Vertical gives it height; horizontal gives it width.\n */\n orientation?: \"horizontal\" | \"vertical\";\n /**\n * If passed in, puts a visible border on the spacer. Useful for testing and debugging!\n */\n outline?: boolean;\n}\n\n/**\n * Rather than continuing to write CSS for each spacing amount between\n * items on the page, we can use this helper. It's fully responsive and\n * provides a strict mode for avoiding media queries if necessary.\n */\nexport function Spacer({\n size = \"default\",\n orientation = \"vertical\",\n ...props\n}: SpacerProps) {\n const className = cx(styles.spacer, sizeMap[size], {\n [styles.responsive]: !props.strict,\n [styles.horizontal]: orientation === \"horizontal\",\n [styles.vertical]: orientation === \"vertical\",\n [styles.outline]: props.outline,\n });\n return <div className={className} />;\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { Spacer } from \"../Grid/Spacer\";\nimport Header from \"../Header\";\nimport { Icon } from \"../Icon\";\nimport { Text } from \"../Text\";\n\nimport styles from \"./Card.scss\";\n\n/**\n * Type definition for the bar location.\n */\ntype BarLocation = \"top\" | \"left\";\n\n/**\n * Type definition for the background options.\n */\ntype Background = \"confetti\" | \"two-tone\" | \"blue-confetti\" | \"white-confetti\";\n\n/**\n * Props for the Card component.\n */\nexport interface CardProps {\n /**\n * Additional CSS class names to apply to the card\n */\n className?: string;\n /**\n * Handler for onClick event of card\n */\n onClick?: (\n e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>\n ) => void;\n /**\n * Custom CSS class for the bar branding\n */\n barBrandingClass?: string;\n /**\n * Color of the bar. Accepts any valid CSS color\n */\n barColor?: string;\n /**\n * Location of the bar: \"top\" or \"left\"\n */\n barLocation?: BarLocation;\n /**\n * Whether to add a border to the card\n */\n withBorder?: boolean;\n /**\n * Background style of the card\n */\n background?: Background | null;\n /**\n * Whether to remove the box shadow\n */\n noShadow?: boolean;\n /**\n * Whether to remove padding from the card\n */\n noPadding?: boolean;\n /**\n * Description for the pinned reason\n */\n pinnedReason?: string;\n /**\n * Text for the pinned date (suggested format: \"Pinned on XXXX XX, XXXX\")\n */\n pinnedDateText?: string;\n /**\n * Whether to add a bottom margin\n */\n withMarginBottom?: boolean;\n}\n\n/**\n * Card component that wraps content in a styled container. It provides options\n * for customization such as borders, backgrounds, and pinned status.\n */\nexport function Card({\n children,\n className,\n onClick,\n barColor,\n barBrandingClass,\n barLocation,\n withBorder,\n background,\n noShadow,\n noPadding,\n pinnedReason,\n pinnedDateText,\n withMarginBottom,\n ...wrapperProps\n}: React.PropsWithChildren<CardProps> &\n React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >) {\n const showBar = Boolean(barLocation);\n const showPinnedBanner = Boolean(pinnedDateText);\n\n const isButton = !!onClick;\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>): void => {\n e.stopPropagation();\n onClick?.(e);\n };\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.(e);\n }\n };\n\n const buttonProps = isButton\n ? {\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: 0,\n }\n : {};\n\n const classNames = cx(\n styles.card,\n {\n [styles[\"card--with-border\"]]: withBorder,\n [styles[\"card--no-shadow\"]]: noShadow,\n [styles[\"card--no-padding\"]]: noPadding,\n [styles[\"card--button\"]]: isButton,\n [styles[\"confetti-background\"]]: background === \"confetti\",\n [styles[\"two-tone-background\"]]: background === \"two-tone\",\n [styles[\"card--pinned\"]]: showPinnedBanner,\n [styles[\"white-confetti-background\"]]: background === \"white-confetti\",\n [styles[\"blue-confetti-background\"]]: background === \"blue-confetti\",\n [styles[\"card--margin-bottom\"]]: withMarginBottom === true,\n },\n className\n );\n\n const barClassNames = cx(styles[\"card-bar\"], barBrandingClass, {\n \"primary-background\": barColor === \"primary\",\n \"secondary-background\": barColor === \"secondary\",\n [styles[\"card-bar--top\"]]: barLocation === \"top\",\n [styles[\"card-bar--left\"]]: barLocation === \"left\",\n });\n\n const inlineStyle = barBrandingClass ? {} : { backgroundColor: barColor };\n\n if (showPinnedBanner) {\n return (\n <PinnedBannerCard\n pinnedDateText={pinnedDateText}\n pinnedReason={pinnedReason}\n classNames={classNames}\n buttonProps={buttonProps}\n wrapperProps={wrapperProps}\n showBar={showBar}\n barClassNames={barClassNames}\n inlineStyle={inlineStyle}\n >\n {children}\n </PinnedBannerCard>\n );\n }\n\n return (\n <div\n data-testid=\"card\"\n className={classNames}\n {...buttonProps}\n {...wrapperProps}\n >\n {showBar && (\n <div\n data-testid=\"card-bar\"\n className={barClassNames}\n style={inlineStyle}\n />\n )}\n {children}\n </div>\n );\n}\n\nfunction PinnedBannerCard(\n props: React.PropsWithChildren<{\n pinnedDateText?: string;\n pinnedReason?: string;\n classNames: string;\n buttonProps: Record<string, any>;\n wrapperProps: Record<string, any>;\n showBar: boolean;\n barClassNames: string;\n inlineStyle: React.CSSProperties | undefined;\n }>\n) {\n const pinnedClassNames = cx(styles[\"pinned-banner\"]);\n const pinnedDateClassNames = cx(styles[\"pinned-date\"]);\n const pinnedIconClassNames = cx(styles[\"pinned-icon\"]);\n const pinnedHeader = cx(styles[\"pinned-header\"]);\n return (\n <div className={styles[\"pinned-banner-container\"]}>\n <div className={pinnedClassNames} data-testid=\"pinned-banner\">\n <div className={pinnedDateClassNames} data-testid=\"pinned-banner-date\">\n <Icon\n className={pinnedIconClassNames}\n size={26}\n icon=\"push_pin\"\n color={styles.systemBlue}\n data-testid=\"pinned-icon\"\n />\n <Text\n size=\"paragraphSmall\"\n color={styles.systemGray2}\n data-testid=\"pinned-date-text\"\n >\n {props.pinnedDateText}\n </Text>\n </div>\n {Boolean(props.pinnedReason) && (\n <>\n <Spacer />\n <Header\n level=\"2\"\n size=\"h5\"\n data-testid=\"pinned-reason\"\n className={pinnedHeader}\n >\n {props.pinnedReason}\n </Header>\n </>\n )}\n </div>\n <div\n data-testid=\"card\"\n className={props.classNames}\n {...props.buttonProps}\n {...props.wrapperProps}\n >\n {props.showBar && (\n <div\n data-testid=\"card-bar\"\n className={props.barClassNames}\n style={props.inlineStyle}\n />\n )}\n {props.children}\n </div>\n </div>\n );\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { coalesce } from \"@kazoohr/helpers\";\n\nimport { BRANDING_CLASSES } from \"../../styles/branding\";\nimport { Icon, IconDictionary } from \"../Icon\";\nimport { Loader } from \"../Loader\";\n\nimport styles from \"./Button.scss\";\n\nexport type ButtonVariant =\n | \"basic\"\n | \"destructive\"\n | \"destructive_outline\"\n | \"primary\"\n | \"transparent\"\n | \"system\"\n | \"secondary\"\n | \"link\"\n | \"feature_inverted\"\n | \"transparentDark\"\n | \"subtle\"\n | \"primary_inverted\"\n | \"pill\";\n\nexport type ButtonSize = \"default\" | \"extra_small\" | \"small\" | \"large\";\nexport type ButtonTarget = \"_self\" | \"_blank\" | \"_parent\" | \"_top\";\nexport type ButtonType = \"button\" | \"submit\";\nexport type IconAlignment = \"left\" | \"right\";\n\nexport type AsLink = {\n /** URL for the link */\n url: string;\n /** Link element from routing library */\n linkElement: React.ComponentType<any> | string;\n};\n\nexport interface ButtonProps {\n /** Optional class name for additional styling */\n className?: string;\n /** Disables the button when true */\n disabled?: boolean;\n /** Makes the button take full width of container */\n fullWidth?: boolean;\n /** Reference to the button element */\n innerRef?: React.Ref<HTMLButtonElement | HTMLAnchorElement | undefined>;\n /** Icon name to display */\n icon?: IconDictionary;\n /** Icon variant style */\n iconVariant?: \"regular\" | \"filled\" | \"thin\";\n /** Custom icon color */\n iconColor?: string;\n /** Position of the icon */\n iconAlignment?: IconAlignment;\n /** Custom link element for routing */\n linkElement?: React.ComponentType<any> | \"a\";\n /** Shows loading state */\n loading?: boolean;\n /** Allow text wrapping */\n wrap?: boolean;\n /** Button size variant */\n size?: ButtonSize;\n /** Button style variant */\n variant?: ButtonVariant;\n /** Target attribute for links */\n target?: ButtonTarget;\n /** Legacy URL prop (deprecated) */\n href?: string;\n /** Legacy routing prop (deprecated) */\n to?: string;\n /** Button type */\n type?: ButtonType;\n /** Link configuration */\n asLink?: AsLink;\n /** Test ID for testing */\n \"data-testid\"?: string;\n /** On click event for the button */\n onClick?: (event: React.MouseEvent) => unknown;\n /** Button name, optional, useful for certain forms */\n name?: string;\n}\n\nfunction getSizeModifier(size: ButtonSize, fullWidth?: boolean): string {\n return cx({\n [styles[\"button--extra-small\"]]: size === \"extra_small\",\n [styles[\"button--small\"]]: size === \"small\",\n [styles[\"button--large\"]]: size === \"large\",\n [styles[\"button--full-width\"]]: fullWidth,\n });\n}\n\nfunction getIconVariant(\n variant: ButtonVariant,\n iconVariant?: \"filled\" | \"thin\" | \"regular\"\n): \"filled\" | \"thin\" | \"regular\" {\n if (iconVariant) {\n return iconVariant;\n }\n\n return variant === \"feature_inverted\" ? \"filled\" : \"thin\";\n}\n\nexport function getVariantModifier(variant: ButtonVariant): string {\n switch (variant) {\n case \"transparent\":\n return styles[\"button--transparent\"];\n case \"transparentDark\":\n return styles[\"button--transparent-dark\"];\n case \"destructive\":\n return styles[\"button--destructive\"];\n case \"subtle\":\n return styles[\"button--subtle\"];\n case \"feature_inverted\":\n return cx(\n styles[\"button--feature\"],\n styles[\"button--feature--inverted\"],\n BRANDING_CLASSES.BUTTON_FEATURE_INVERTED\n );\n case \"primary\":\n return cx(styles[\"button--primary\"], BRANDING_CLASSES.BUTTON_PRIMARY);\n case \"primary_inverted\":\n return cx(\n styles[\"button--primary--inverted\"],\n BRANDING_CLASSES.BUTTON_PRIMARY_INVERTED\n );\n case \"system\":\n return cx(styles[\"button--system\"]);\n case \"destructive_outline\":\n return cx(styles[\"button--destructive-outline\"]);\n case \"pill\":\n return cx(styles[\"button--pill\"]);\n case \"link\":\n return cx(styles[\"button--link\"]);\n case \"secondary\":\n return cx(styles[\"button--secondary\"], BRANDING_CLASSES.BUTTON_SECONDARY);\n case \"basic\":\n default:\n return styles[\"button--basic\"];\n }\n}\n\ninterface CustomProps {\n href?: string;\n to?: string;\n target?: ButtonTarget;\n type?: ButtonType;\n}\n\n/** Generic button component supporting various styles and states */\nexport function Button({\n children,\n disabled,\n fullWidth,\n className,\n icon,\n iconColor,\n iconAlignment = \"left\",\n iconVariant,\n innerRef,\n linkElement = \"a\",\n loading,\n size = \"default\",\n variant = \"basic\",\n href,\n to,\n target,\n \"data-testid\": dataTestId,\n asLink,\n wrap = false,\n ...elementProps\n}: ButtonProps &\n React.HTMLAttributes<\n HTMLButtonElement | HTMLAnchorElement\n >): React.ReactElement {\n const buttonClassName = cx(\n styles.button,\n getSizeModifier(size, fullWidth),\n getVariantModifier(variant),\n { [styles[\"button--loading\"]]: loading },\n className,\n { [styles[\"button--wrap\"]]: wrap }\n );\n\n const iconVariantButton = getIconVariant(variant, iconVariant);\n const linkTag = getLinkTag(linkElement, asLink);\n const url = getUrl({ href, to, asLink });\n\n const useLink = url && !disabled;\n const TagName = useLink ? linkTag : \"button\";\n const props: CustomProps = { ...elementProps };\n\n if (useLink) {\n const isAnchor = linkTag === \"a\";\n props[isAnchor ? \"href\" : \"to\"] = url;\n if (target) {\n props.target = target;\n }\n }\n\n const iconWrapperStyles = cx(styles[\"button--icon-wrapper\"], {\n [BRANDING_CLASSES.BUTTON_FEATURE_INVERTED_ICON_WRAPPER]:\n variant === \"feature_inverted\",\n [styles[\"button--icon-wrapper--left\"]]: iconAlignment === \"left\",\n [styles[\"button--icon-wrapper--right\"]]: iconAlignment === \"right\",\n });\n\n return (\n <TagName\n {...props}\n className={buttonClassName}\n disabled={disabled || loading}\n data-testid={dataTestId}\n ref={innerRef}\n type={TagName === \"button\" ? props.type : undefined}\n >\n {iconAlignment === \"right\" && children}\n {icon && (\n <div\n className={iconWrapperStyles}\n data-testid={`${coalesce(dataTestId, \"button\")}-icon-wrapper`}\n >\n <Icon\n data-testid={`${coalesce(dataTestId, \"button\")}-icon-${icon}`}\n icon={icon}\n color={coalesce(iconColor, \"currentColor\")}\n variant={iconVariantButton}\n />\n </div>\n )}\n {iconAlignment === \"left\" && children}\n {loading && (\n <div\n className={styles[\"button--loader-wrapper\"]}\n data-testid={`${coalesce(dataTestId, \"button\")}-loader-div`}\n >\n <Loader size=\"small\" />\n </div>\n )}\n </TagName>\n );\n}\n\ninterface UrlProps {\n href?: string;\n to?: string;\n asLink?: AsLink;\n}\n\nexport function getUrl({ href, to, asLink }: UrlProps): string | undefined {\n if (href) {\n return href;\n }\n if (to) {\n return to;\n }\n if (asLink?.url) {\n return asLink.url;\n }\n return undefined;\n}\n\nexport function getLinkTag(\n linkElement: React.ComponentType<any> | string,\n asLink?: AsLink\n): React.ComponentType<any> | string {\n if (asLink?.linkElement) {\n return asLink.linkElement;\n }\n return linkElement;\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport { IconDictionary } from \"../Icon/types\";\n\nimport styles from \"./IconButton.scss\";\n\nexport type IconButtonProps = React.PropsWithChildren<\n React.ComponentProps<typeof Button> & {\n /** KazooIcon to display. See Icon/types.ts */\n icon: IconDictionary | (string & Record<never, never>);\n /** \"regular\"|\"filled\"|\"thin\" variant of the icon */\n iconVariant?: \"regular\" | \"filled\" | \"thin\";\n title?: string;\n ariaLabel?: string | null;\n system?: boolean;\n disabled?: boolean;\n /** Additional classes of the base element */\n className?: string | null;\n /** The size of the icon inside of the button in px width and height. */\n iconSize?: 8 | 12 | 16 | 24 | 28;\n /** Special IconButtonVariant for dark backgrounds. */\n iconButtonVariant?: \"onDarkBg\";\n /** Prop passed to the Button to determine button or submit. */\n type?: \"button\" | \"submit\";\n onClick?: (\n event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>\n ) => void;\n draggable?: boolean;\n onDragStart?: (event: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event: React.DragEvent<HTMLElement>) => void;\n /** The number to display in the top right corner of the icon. */\n quantity?: number;\n\n /** Sets the size of the button container mind width and height. Default 40 */\n containerSize?: 24 | 40;\n }\n>;\n\n/**\n * A square, touchscreen friendly wrapper for a Button that includes an Icon.\n * This is built on top of the `Button` and `Icon` components. This component\n * accepts all props except `size` and `fullWidth` supported by the `Button`\n * Component, passing them through directly. The icon and size props will be\n * passed down to the icon component, however the size uses an enum to make\n * sure the icon fits into a circle shaped button.\n *\n * - This is a simple wrapper around `Button`, so it is suggested you check\n * `Button` for any additional props / options.\n *\n * - This component no longer accepts button variants other than `transparent`.\n * If a different variant is declared, it will be overridden by the\n * iconButton component.\n *\n * - We must implement the `ariaLabel` and `title` props every time we use an\n * `IconButton` for accessibility purpose, if not implemented we must update\n * it.\n */\nexport function IconButton({\n children,\n className,\n iconVariant = \"regular\",\n icon,\n iconSize = 16,\n system,\n ariaLabel = \"\",\n title = \"\",\n iconButtonVariant,\n quantity,\n containerSize = 40,\n ...buttonProps\n}: IconButtonProps) {\n const classes = cx(className, styles[\"icon-button\"], {\n [styles[\"icon-button--system\"]]: system,\n [styles[\"onDarkBg\"]]: iconButtonVariant === \"onDarkBg\",\n [styles[\"compact-icon-button\"]]: containerSize === 24,\n });\n\n const quantityClasses = cx(styles[\"quantity\"]);\n // Make sure button props does not have a size or fullWidth as it will mess with circle\n buttonProps.size = undefined;\n buttonProps.fullWidth = false;\n // Override button variant as compromise to avoid breaking changes.\n buttonProps.variant = \"transparent\";\n const quantityLabel =\n quantity !== undefined && quantity > 0 ? ` (${quantity})` : \"\";\n return (\n <Button\n {...buttonProps}\n className={classes}\n aria-label={`${ariaLabel}${quantityLabel}`}\n title={title}\n >\n <div\n className={styles[\"quantity-container\"]}\n data-testid=\"confetti-icon-button-quantity-container\"\n >\n <Icon\n variant={iconVariant}\n icon={icon}\n size={iconSize}\n color=\"currentColor\"\n />\n {!!quantity && quantity > 0 && (\n <div className={quantityClasses} data-testid=\"icon-quantity\">\n {quantity}\n </div>\n )}\n </div>\n {children}\n </Button>\n );\n}\n","import { asyncComponent } from \"../../helpers/asyncComponent\";\n\nexport const PopperAsync = asyncComponent({\n module: () => import(\"./Popper\"),\n component: (module) => module.Popper,\n});\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { coalesce } from \"@kazoohr/helpers\";\n\nimport styles from \"./TabIndexVisibility.scss\";\n\nconst tabIndexableTags = [\"a\", \"button\", \"input\", \"select\", \"textarea\"];\n\nexport interface TabIndexVisibilityProps {\n children?: React.ReactNode;\n /**\n * Default: true. If false, adds `tabIndex: -1` to all children that require it.\n */\n visible?: boolean;\n /**\n * Optional `className` to provide the `div` element\n */\n className?: string;\n}\n\nlet ids = 0;\n\n/**\n * An accessibility helper component to remove all of the children of this\n * component from the tab index tree by adding `tabIndex: -1` to their props if\n * they are a tabbable element _or_ have a non-zero tab index.\n *\n * Wraps the component tree in a `div` element for controlling tab indexes.\n */\nexport function TabIndexVisibility({\n visible = true,\n children = [],\n className = \"\",\n}: TabIndexVisibilityProps) {\n const id = React.useMemo(() => `tab-indexer-${ids++}`, []);\n\n React.useEffect(() => {\n document.querySelectorAll(`#${id} *`).forEach((element) => {\n if (\n !(element instanceof HTMLElement) ||\n !elementSupportsTabIndex(element)\n ) {\n return;\n }\n if (visible) {\n element.tabIndex = parseInt(\n coalesce(element.dataset.originalTabIndex, \"0\"),\n 10\n );\n } else {\n element.dataset.oldTabIndex = String(\n element.dataset.oldTabIndex || element.tabIndex || 0\n );\n element.tabIndex = -1;\n }\n });\n }, [visible, id]);\n\n return (\n <div id={id} className={cx(styles.tabIndexVisibility, className)}>\n {children}\n </div>\n );\n}\n\nfunction elementSupportsTabIndex(element: HTMLElement): boolean {\n if (tabIndexableTags.includes(element.nodeName.toLowerCase())) {\n return true;\n }\n return false;\n}\n","import React from \"react\";\n\nimport { Card } from \"../Card\";\nimport { Popper, PopperProps } from \"../Popper\";\nimport { TabIndexVisibility } from \"../TabIndexVisibility\";\n\nexport interface PopoverProps {\n /**\n * Closes when the user clicks away from the popover\n * @default true\n */\n closeOnClickAway?: boolean;\n /**\n * Ignores close on click away used for specific scenarios\n * @default false\n */\n ignoreCloseOnClickAway?: boolean;\n /**\n * When using closeOnClickAway, this function is called when the user clicks away. Signature: `(open: boolean) => void;`\n */\n onSetOpen?: (open: boolean) => void;\n /**\n * The element to attach this popover to\n */\n parent: JSX.Element;\n /**\n * The popover contents\n */\n popoverComponent: React.ReactNode;\n /**\n * Whether to render the popover or not\n * @default false\n */\n isOpen?: boolean;\n /**\n * CSS class name to add to Popover Card element\n * @default \"\"\n */\n className?: string;\n /**\n * Position of the popper\n * @default \"bottom\"\n */\n position?:\n | \"top-start\"\n | \"top\"\n | \"top-end\"\n | \"right-start\"\n | \"right\"\n | \"right-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"bottom-end\"\n | \"left-start\"\n | \"left\"\n | \"left-end\";\n /**\n * Arrow that points toward the reference element.\n * @default false\n */\n displayArrow?: boolean;\n /**\n * Animation that will be used everytime the popover is displayed\n */\n animate?: \"height\" | \"visibility\";\n /**\n * Class that will be applied to the arrow that points toward the reference element\n */\n arrowClassName?: string;\n /**\n * Props to pass to the Popper component\n */\n popperProps?: Partial<PopperProps>;\n /**\n * If true, the popover will be rendered in a portal. Portals are useful for rendering components outside of their parent component's DOM hierarchy, such as modals or tooltips.\n * If false, the popover will be rendered in place. This can be useful for performance reasons or if the popover needs to interact with its parent component's DOM.\n * @default true\n */\n renderInPortal?: boolean;\n}\n\n/**\n * A large panel of content attached to a specific element on the page.\n */\nexport function Popover({\n closeOnClickAway = true,\n ignoreCloseOnClickAway = false,\n parent,\n isOpen = false,\n popoverComponent,\n onSetOpen,\n className = \"\",\n position = \"bottom\",\n displayArrow = false,\n animate,\n arrowClassName,\n popperProps,\n renderInPortal = true,\n}: React.PropsWithChildren<PopoverProps>): JSX.Element {\n return (\n <Popper\n position={position}\n closeOnClickAway={closeOnClickAway}\n ignoreCloseOnClickAway={ignoreCloseOnClickAway}\n isOpen={isOpen}\n onSetOpen={onSetOpen}\n displayArrow={displayArrow}\n animate={animate}\n arrowClassName={arrowClassName}\n renderInPortal={renderInPortal}\n popupElement={\n <TabIndexVisibility visible={isOpen}>\n <Card\n data-testid={`popover-${isOpen ? \"open\" : \"closed\"}`}\n className={className}\n >\n {popoverComponent}\n </Card>\n </TabIndexVisibility>\n }\n {...popperProps}\n >\n {parent}\n </Popper>\n );\n}\n","import { asyncComponent } from \"../../helpers/asyncComponent\";\n\nexport const DatePickerAsync = asyncComponent({\n module: () => import(\"./DatePicker\"),\n component: (module) => module[\"default\"],\n});\n","import { objectKeys } from \"@kazoohr/helpers\";\n\nimport { asyncComponent } from \"../../helpers/asyncComponent\";\n\nimport { IllustrationDictionary } from \"./types\";\n\n/**\n * A map of all the illustrations available in the Confetti library, as async\n * components that are loaded as needed. Cuts down massively on initial load\n * times.\n */\nexport const IllustrationMap: Record<IllustrationDictionary, any> = {\n absenteeism: asyncComponent({\n module: () => import(\"./Illustrations/Absenteeism\"),\n component: (module) => module.Absenteeism,\n }),\n activity_feed: asyncComponent({\n module: () => import(\"./Illustrations/ActivityFeed\"),\n component: (module) => module.ActivityFeed,\n }),\n admin: asyncComponent({\n module: () => import(\"./Illustrations/Admin\"),\n component: (module) => module.Admin,\n }),\n appreciation: asyncComponent({\n module: () => import(\"./Illustrations/Appreciation\"),\n component: (module) => module.Appreciation,\n }),\n be_quick_dont_hurry: asyncComponent({\n module: () => import(\"./Illustrations/BeQuickDontHurry\"),\n component: (module) => module.BeQuickDontHurry,\n }),\n brand_promise: asyncComponent({\n module: () => import(\"./Illustrations/BrandPromise\"),\n component: (module) => module.BrandPromise,\n }),\n brand_vision: asyncComponent({\n module: () => import(\"./Illustrations/BrandVision\"),\n component: (module) => module.BrandVision,\n }),\n challenge_accepted: asyncComponent({\n module: () => import(\"./Illustrations/ChallengeAccepted\"),\n component: (module) => module.ChallengeAccepted,\n }),\n check_ins: asyncComponent({\n module: () => import(\"./Illustrations/CheckIns\"),\n component: (module) => module.CheckIns,\n }),\n comments: asyncComponent({\n module: () => import(\"./Illustrations/Comments\"),\n component: (module) => module.Comments,\n }),\n connections: asyncComponent({\n module: () => import(\"./Illustrations/Connections\"),\n component: (module) => module.Connections,\n }),\n custom_question: asyncComponent({\n module: () => import(\"./Illustrations/CustomQuestion\"),\n component: (module) => module.CustomQuestion,\n }),\n customer_success: asyncComponent({\n module: () => import(\"./Illustrations/CustomerSuccess\"),\n component: (module) => module.CustomerSuccess,\n }),\n enps_survey: asyncComponent({\n module: () => import(\"./Illustrations/EnpsSurvey\"),\n component: (module) => module.EnpsSurvey,\n }),\n feedback: asyncComponent({\n module: () => import(\"./Illustrations/Feedback\"),\n component: (module) => module.Feedback,\n }),\n goal_task: asyncComponent({\n module: () => import(\"./Illustrations/GoalTask\"),\n component: (module) => module.GoalTask,\n }),\n goals: asyncComponent({\n module: () => import(\"./Illustrations/Goals\"),\n component: (module) => module.Goals,\n }),\n growth: asyncComponent({\n module: () => import(\"./Illustrations/Growth\"),\n component: (module) => module.Growth,\n }),\n high_five: asyncComponent({\n module: () => import(\"./Illustrations/HighFive\"),\n component: (module) => module.HighFive,\n }),\n home: asyncComponent({\n module: () => import(\"./Illustrations/Home\"),\n component: (module) => module.Home,\n }),\n in_good_company: asyncComponent({\n module: () => import(\"./Illustrations/InGoodCompany\"),\n component: (module) => module.InGoodCompany,\n }),\n incentives: asyncComponent({\n module: () => import(\"./Illustrations/Incentives\"),\n component: (module) => module.Incentives,\n }),\n insights: asyncComponent({\n module: () => import(\"./Illustrations/Insights\"),\n component: (module) => module.Insights,\n }),\n integrations: asyncComponent({\n module: () => import(\"./Illustrations/Integrations\"),\n component: (module) => module.Integrations,\n }),\n know_your_audience: asyncComponent({\n module: () => import(\"./Illustrations/KnowYourAudience\"),\n component: (module) => module.KnowYourAudience,\n }),\n launch: asyncComponent({\n module: () => import(\"./Illustrations/Launch\"),\n component: (module) => module.Launch,\n }),\n management: asyncComponent({\n module: () => import(\"./Illustrations/Management\"),\n component: (module) => module.Management,\n }),\n messages: asyncComponent({\n module: () => import(\"./Illustrations/Messages\"),\n component: (module) => module.Messages,\n }),\n mobile: asyncComponent({\n module: () => import(\"./Illustrations/Mobile\"),\n component: (module) => module.Mobile,\n }),\n nominations_and_awards: asyncComponent({\n module: () => import(\"./Illustrations/NominationsAndAwards\"),\n component: (module) => module.NominationsAndAwards,\n }),\n okrs: asyncComponent({\n module: () => import(\"./Illustrations/Okrs\"),\n component: (module) => module.Okrs,\n }),\n peer_to_peer: asyncComponent({\n module: () => import(\"./Illustrations/PeerToPeer\"),\n component: (module) => module.PeerToPeer,\n }),\n performance_management: asyncComponent({\n module: () => import(\"./Illustrations/PerformanceManagement\"),\n component: (module) => module.PerformanceManagement,\n }),\n processing: asyncComponent({\n module: () => import(\"./Illustrations/Processing\"),\n component: (module) => module.Processing,\n }),\n productivity: asyncComponent({\n module: () => import(\"./Illustrations/Productivity\"),\n component: (module) => module.Productivity,\n }),\n pulse_survey: asyncComponent({\n module: () => import(\"./Illustrations/PulseSurvey\"),\n component: (module) => module.PulseSurvey,\n }),\n recognition: asyncComponent({\n module: () => import(\"./Illustrations/Recognition\"),\n component: (module) => module.Recognition,\n }),\n retention: asyncComponent({\n module: () => import(\"./Illustrations/Retention\"),\n component: (module) => module.Retention,\n }),\n rewards: asyncComponent({\n module: () => import(\"./Illustrations/Rewards\"),\n component: (module) => module.Rewards,\n }),\n rewards_catalog: asyncComponent({\n module: () => import(\"./Illustrations/RewardsCatalog\"),\n component: (module) => module.RewardsCatalog,\n }),\n security: asyncComponent({\n module: () => import(\"./Illustrations/Security\"),\n component: (module) => module.Security,\n }),\n skills: asyncComponent({\n module: () => import(\"./Illustrations/Skills\"),\n component: (module) => module.Skills,\n }),\n surveys: asyncComponent({\n module: () => import(\"./Illustrations/Surveys\"),\n component: (module) => module.Surveys,\n }),\n sync_ups: asyncComponent({\n module: () => import(\"./Illustrations/SyncUps\"),\n component: (module) => module.SyncUps,\n }),\n talent_review: asyncComponent({\n module: () => import(\"./Illustrations/TalentReview\"),\n component: (module) => module.TalentReview,\n }),\n team: asyncComponent({\n module: () => import(\"./Illustrations/Team\"),\n component: (module) => module.Team,\n }),\n yes_and: asyncComponent({\n module: () => import(\"./Illustrations/YesAnd\"),\n component: (module) => module.YesAnd,\n }),\n};\n\nexport const IllustrationDictionaryKeys = objectKeys(IllustrationMap);\n","import { asyncComponent } from \"../../../helpers/asyncComponent\";\n\nexport const LegacyIllustrations = {\n Stop: asyncComponent({\n module: () => import(\"./Stop\"),\n component: (module) => module.Stop,\n }),\n Unplugged: asyncComponent({\n module: () => import(\"./Unplugged\"),\n component: (module) => module.Unplugged,\n }),\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n var parentElement = element;\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus();\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(document.activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = \"length\" in el ? el[0] : el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n if (!appElement && !globalElement) {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return false;\n }\n\n return true;\n}\n\nfunction hide(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nfunction show(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).removeAttribute(\"aria-hidden\");\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}\n\nfunction resetForTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dumpClassLists = dumpClassLists;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\nfunction dumpClassLists() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \"<html /> (\" + classes + \"):\\n\";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n\";\n }\n\n classes = document.body.className;\n\n // eslint-disable-next-line max-len\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n\";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n\";\n }\n\n buffer += \"\\n\";\n\n // eslint-disable-next-line no-console\n console.log(buffer);\n }\n}\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\nexports.default = portalOpenInstances;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before || !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus();\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus();\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n return this.shouldBeClosed() ? null : _react2.default.createElement(\n \"div\",\n {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n },\n _react2.default.createElement(\n \"div\",\n _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", this.props.aria || {}), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n }),\n this.props.children\n )\n );\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _reactDom2.default.createPortal !== undefined;\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = document.createElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n parentSelector: function parentSelector() {\n return document.body;\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","export function onBrowser() {\n return typeof window === \"object\";\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { onBrowser } from \"../../helpers/onBrowser\";\nimport { Icon, IconDictionary } from \"../Icon\";\n\nimport styles from \"./ProfilePic.scss\";\n\n/**\n * Profile Picture Component\n *\n * Displays a user's profile picture or initials.\n */\nexport function ProfilePic({\n className,\n dimensions,\n user,\n size = \"large\",\n icon,\n grayscale = false,\n}: ProfilePicProps): JSX.Element {\n const targetRef = React.useRef<HTMLDivElement>(null);\n const image = icon ? undefined : imageToRender(user);\n const wrapperSize = useDimensions(targetRef, image);\n const profilePicContainerStyle: React.CSSProperties =\n dimensions && size !== \"fluid\"\n ? { height: dimensions, width: dimensions }\n : {};\n const profilePicStyle: React.CSSProperties = image\n ? { backgroundImage: `url(${image})` }\n : {};\n const initialsStyle: React.CSSProperties = {};\n\n // istanbul ignore else - requires accurate DOM measurements, which we don't get in unit tests\n if (size !== \"fluid\" && dimensions) {\n initialsStyle.fontSize = dimensions / 2;\n } else if (size === \"fluid\" && !image && wrapperSize.width !== 0) {\n // Default value for font-size will be inherited from picture wrapper.\n initialsStyle.fontSize = wrapperSize.width / 2;\n }\n\n const profilePicClassName = cx(\n styles.wrapper,\n {\n [styles.initials]: !image,\n [wrapperClass(size)]: !dimensions || size === \"fluid\",\n [styles[\"wrapper--hover\"]]: !!className?.includes(\"withHover\"),\n },\n className\n );\n\n const picClassName = cx(styles[\"pic-wrapper\"], {\n [styles.pic]: image,\n [styles.initials]: !image,\n [styles.grayscale]: grayscale,\n });\n\n const textContent = icon ? (\n <Icon icon={icon} color=\"white\" />\n ) : (\n <>{user.initials}</>\n );\n\n return (\n <div\n data-testid={`profile-pic-${image ? \"image\" : \"default\"}`}\n className={profilePicClassName}\n style={profilePicContainerStyle}\n ref={targetRef}\n data-grayscale={grayscale}\n >\n {image ? (\n <div\n className={picClassName}\n style={profilePicStyle}\n data-testid=\"profile-pic-child\"\n />\n ) : (\n <div\n className={picClassName}\n style={initialsStyle}\n data-testid=\"profile-pic-child-initials\"\n >\n {textContent}\n </div>\n )}\n </div>\n );\n}\n\ntype ProfilePicSizes = \"large\" | \"medium\" | \"small\" | \"fluid\";\n\ntype AvatarContainer = {\n avatarUrl?: string;\n avatar?: string;\n image160?: string | null;\n image70?: string | null;\n image30?: string | null;\n};\n\nexport function imageToRender({\n avatarUrl,\n avatar,\n image160,\n image70,\n image30,\n}: AvatarContainer): string | undefined {\n if (avatarUrl) {\n return avatarUrl;\n }\n if (avatar) {\n return avatar;\n }\n if (image160) {\n return image160;\n }\n if (image70) {\n return image70;\n }\n return image30 || undefined;\n}\n\n/**\n * User type definition for ProfilePic component. It's a type because we don't\n * want callers to have to strip props that are not used by ProfilePic.\n */\nexport type ProfilePicUser = {\n initials?: string;\n avatar?: string;\n avatarUrl?: string;\n id?: string;\n name?: React.ReactNode | React.ReactNode[] | string | Function;\n jobTitle?: string;\n department?: string;\n image160?: string | null;\n image70?: string | null;\n image30?: string | null;\n primaryGroup?: string;\n};\n\n/**\n * Props for ProfilePic component\n */\nexport interface ProfilePicProps {\n /**\n * User object containing profile information\n */\n user: ProfilePicUser;\n /**\n * Absolute size of the profile pic in pixels\n */\n dimensions?: number;\n /**\n * Size of the profile pic. If dimensions are set,\n * they will override this prop, except for FLUID size.\n */\n size?: ProfilePicSizes;\n /**\n * Whether to apply grayscale filter to the image\n */\n grayscale?: boolean;\n /**\n * Custom CSS class name for the component\n */\n className?: string;\n /**\n * Icon to display instead of initials or image\n */\n icon?: IconDictionary;\n}\n\nfunction wrapperClass(size: ProfilePicSizes): string {\n switch (size) {\n case \"small\":\n return styles[\"wrapper--small\"];\n case \"medium\":\n return styles[\"wrapper--medium\"];\n case \"fluid\":\n return styles[\"wrapper--fluid\"];\n case \"large\":\n default:\n return styles[\"wrapper--large\"];\n }\n}\n\n// istanbul ignore next - requires accurate DOM measurements, which we don't get in unit tests\nfunction useDimensions(\n targetRef: React.RefObject<HTMLDivElement>,\n image?: string\n) {\n const calculatedDimensions = {\n width: !image && targetRef.current ? targetRef.current.offsetWidth : 0,\n height: !image && targetRef.current ? targetRef.current.offsetHeight : 0,\n };\n\n const [dimensions, setDimensions] = React.useState(calculatedDimensions);\n\n const handleResize = () => {\n setDimensions(calculatedDimensions);\n };\n\n React.useEffect(() => {\n if (!onBrowser()) {\n return;\n }\n\n if (!image) {\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }\n }, [image]);\n\n React.useEffect(() => {\n if (!image) {\n handleResize();\n }\n }, [image]);\n return dimensions;\n}\n","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport var keys = function keys(obj) {\n return obj === Object(obj) ? Object.keys(obj) : [];\n};\nexport var values = function values(obj) {\n return obj === Object(obj) ? Object.values(obj) : [];\n};\n\nfunction mergeDeep(target, source) {\n var output = Object.assign({}, target);\n\n if (isPlainObject(target) && isPlainObject(source)) {\n keys(source).forEach(function (key) {\n if (isPlainObject(source[key])) {\n if (!(key in target)) Object.assign(output, _defineProperty({}, key, source[key]));else output[key] = mergeDeep(target[key], source[key]);\n } else {\n Object.assign(output, _defineProperty({}, key, source[key]));\n }\n });\n }\n\n return output;\n}\n\nexport var merge = function merge(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n return sources.reduce(function (t, s) {\n return mergeDeep(t, s);\n }, target);\n};\nexport var identity = function identity(value) {\n return value;\n};\nexport var omit = function omit(obj, keys) {\n var other = Object.assign({}, obj);\n\n if (keys) {\n for (var i = 0; i < keys.length; i++) {\n delete other[keys[i]];\n }\n }\n\n return other;\n};\nexport var isPlainObject = function isPlainObject(obj) {\n return obj === Object(obj) && !(obj instanceof Date) && !Array.isArray(obj);\n};\nexport var compact = function compact(arr) {\n return (arr || []).filter(Boolean);\n};","export var isModifier = function isModifier(key) {\n return key[0] === '&';\n};\nexport var isElement = function isElement(key) {\n return !isModifier(key);\n};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { keys, merge, omit, values } from './utils';\nimport { isModifier } from './filterKeys';\n\nvar camelize = function camelize(key) {\n return key.replace(/-(\\w)/g, function (m, c) {\n return c.toUpperCase();\n });\n};\n\nexport var pickDirectStyles = function pickDirectStyles(style) {\n var objectPropertiesWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var styleKeys = keys(style);\n var result = {};\n\n for (var i = 0, l = styleKeys.length; i < l; i += 1) {\n var key = styleKeys[i];\n var isDirect = Object.prototype.toString.call(style[key]) !== '[object Object]' || // style defs\n key[0] === ':' || // pseudo selectors\n key[0] === '@' || // @media / @keyframes / @supports / @font-face\n objectPropertiesWhitelist.indexOf(key) >= 0; // whitelisted object-type properties\n\n if (isDirect) {\n result[key] = style[key];\n }\n }\n\n return result;\n};\nexport var pickNestedStyles = function pickNestedStyles(style, keysToPick) {\n var camelizedKeysToPick = keysToPick.map(camelize);\n var styleKeys = keys(style);\n var result = {};\n\n for (var i = 0, l = styleKeys.length; i < l; i += 1) {\n var key = styleKeys[i];\n\n if (keysToPick.indexOf(key) >= 0 || camelizedKeysToPick.indexOf(camelize(key)) >= 0) {\n result[key] = style[key];\n }\n }\n\n return result;\n}; // breadth-first hoisting of selected modifier style subtrees\n// does not traverse into element, :pseudo-selector or @directive subtrees\n\nexport var hoistModifierStylesRecursive = function hoistModifierStylesRecursive(style, modifierKeysToPick) {\n // hoist styles for selected modifiers on current level\n var result = merge.apply(void 0, [{}, omit(style, modifierKeysToPick)].concat(_toConsumableArray(values(pickNestedStyles(style, modifierKeysToPick))))); // traverse nested styled for ALL modifiers\n\n var modifierKeys = keys(result).filter(isModifier);\n\n for (var i = 0, l = modifierKeys.length; i < l; i += 1) {\n var key = modifierKeys[i];\n var subresult = hoistModifierStylesRecursive(result[key], modifierKeysToPick);\n\n if (modifierKeysToPick.indexOf(key) >= 0) {\n // selected modifier: hoist subresult\n delete result[key];\n result = merge({}, result, subresult);\n } else {\n // non-selected modifier: replace with subresult\n result[key] = subresult;\n }\n }\n\n return result;\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { pickDirectStyles } from './pickStyles';\n// many css-in-js libs process keyframes objects as the value for `animationName`\nvar defaultObjectPropsWhitelist = ['animationName'];\n\nvar defaultPropsDecorator = function defaultPropsDecorator(_ref) {\n var style = _ref.style,\n className = _ref.className;\n return _objectSpread(_objectSpread({}, style ? {\n style: pickDirectStyles(style, defaultObjectPropsWhitelist)\n } : {}), className ? {\n className: className\n } : {});\n};\n\nexport default defaultPropsDecorator;","import { createContext } from 'react';\nimport defaultPropsDecorator from './defaultPropsDecorator';\nexport var PropsDecoratorContext = /*#__PURE__*/createContext(defaultPropsDecorator);\nexport default PropsDecoratorContext.Provider;","import { keys } from './utils';\n\nvar coerceSelection = function coerceSelection(select) {\n if (!select) {\n return [];\n } else if (typeof select === 'string') {\n return [select];\n } else if (!Array.isArray(select)) {\n var objSelect = select; // workaround for https://github.com/facebook/flow/issues/5781\n\n return keys(select).reduce(function (acc, key) {\n return acc.concat(objSelect[key] ? [key] : []);\n }, []);\n }\n\n return select;\n};\n\nexport default coerceSelection;","import coerceSelection from './coerceSelection';\nvar EMPTY = {};\n\nvar memoize = function memoize(substyle) {\n return function (select, defaultStyle) {\n var cacheKey = defaultStyle || EMPTY;\n substyle.memoize = substyle.memoize || new WeakMap();\n var mapEntry;\n\n if (!substyle.memoize.has(cacheKey)) {\n mapEntry = {};\n substyle.memoize.set(cacheKey, mapEntry);\n } else {\n mapEntry = substyle.memoize.get(cacheKey);\n }\n\n var selectHash = coerceSelection(select).join(' ');\n return selectHash in mapEntry ? mapEntry[selectHash] : mapEntry[selectHash] = substyle(select || [], defaultStyle);\n };\n};\n\nexport default memoize;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport invariant from 'invariant';\nimport coerceSelection from './coerceSelection';\nimport defaultPropsDecorator from './defaultPropsDecorator';\nimport { isElement, isModifier } from './filterKeys';\nimport memoize from './memoize';\nimport { hoistModifierStylesRecursive, pickNestedStyles } from './pickStyles';\nimport { compact, isPlainObject, keys, merge, values } from './utils';\n\nvar guessBaseClassName = function guessBaseClassName(classNames) {\n // all class names must start with the same prefix: the component's base class name\n // which will finally go to the container element\n var firstKey = classNames && keys(classNames)[0];\n return firstKey && firstKey.split('__')[0].split('--')[0];\n};\n\nvar deriveClassNames = function deriveClassNames(className, elementKeys, modifierKeys) {\n // do not derive class names, if the user did not specify any class name\n if (!className) {\n return undefined;\n } // derive class names based using the passed modifier/element keys\n\n\n var firstClassName = className.split(' ')[0];\n var derivedClassNames = [].concat(_toConsumableArray(elementKeys.length === 0 ? modifierKeys.map(function (key) {\n return \"\".concat(firstClassName, \"--\").concat(key.substring(1));\n }) : []), _toConsumableArray(elementKeys.map(function (key) {\n return \"\".concat(firstClassName, \"__\").concat(key);\n }))); // also use the provided `className` if there is no sub-element selection\n\n return elementKeys.length === 0 ? [className].concat(_toConsumableArray(derivedClassNames)) : derivedClassNames;\n};\n\nfunction createSubstyle(_ref) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var propsDecorator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultPropsDecorator;\n var baseClassName = className || guessBaseClassName(classNames) || (style === null || style === void 0 ? void 0 : style.className);\n var substyle = typeof style === 'function' ? style : memoize(function (select, defaultStyle) {\n var selectedKeys = coerceSelection(select);\n invariant(Array.isArray(selectedKeys), 'First parameter must be a string, an array of strings, ' + 'a plain object with boolean values, or a falsy value.');\n invariant(!defaultStyle || isPlainObject(defaultStyle), 'Optional second parameter must be a plain object.');\n var modifierKeys = selectedKeys.filter(isModifier);\n var elementKeys = selectedKeys.filter(isElement);\n var collectElementStyles = elementKeys.length > 0 ? function (fromStyle) {\n return values(pickNestedStyles(fromStyle, elementKeys));\n } : function (fromStyle) {\n return [fromStyle];\n };\n\n var collectSelectedStyles = function collectSelectedStyles() {\n var fromStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return collectElementStyles(hoistModifierStylesRecursive(fromStyle, modifierKeys));\n };\n\n var derivedClassNames = deriveClassNames(baseClassName, elementKeys, modifierKeys);\n return createSubstyle(_objectSpread(_objectSpread(_objectSpread({}, (style || defaultStyle) && {\n style: merge.apply(void 0, [{}].concat(_toConsumableArray(collectSelectedStyles(defaultStyle)), _toConsumableArray(collectSelectedStyles(style))))\n }), derivedClassNames && {\n className: derivedClassNames.join(' ')\n }), classNames && {\n classNames: classNames\n }), propsDecorator);\n });\n\n var styleProps = _objectSpread({}, typeof style === 'function' ? style : {\n style: style\n });\n\n var classNameSplit = _toConsumableArray(new Set([].concat(_toConsumableArray(styleProps.className ? styleProps.className.split(' ') : []), _toConsumableArray(baseClassName ? baseClassName.split(' ') : []))));\n\n var mappedClassNames = classNames ? compact(classNameSplit.map(function (singleClassName) {\n return classNames[singleClassName];\n })) : classNameSplit;\n var propsForSpread = propsDecorator(_objectSpread(_objectSpread({}, styleProps), mappedClassNames.length > 0 ? {\n className: mappedClassNames.join(' ')\n } : {})); // assign `style`, `className`, and/or any props added by the decorator to the return function object\n\n Object.assign(substyle, propsForSpread);\n return substyle;\n}\n\nexport default createSubstyle;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar inline = function inline() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.reduce(function (result, arg) {\n return _objectSpread(_objectSpread(_objectSpread({}, result), typeof arg === 'function' ? arg : {}), {}, {\n style: _objectSpread(_objectSpread({}, result.style), typeof arg === 'function' ? arg.style : arg)\n });\n }, {});\n};\n\nexport default inline;","import { useContext, useMemo } from 'react';\nimport { PropsDecoratorContext } from './PropsDecoratorProvider';\nimport createSubstyle from './createSubstyle';\n\nvar useStyles = function useStyles(defaultStyle, _ref, modifiers) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var propsDecorator = useContext(PropsDecoratorContext);\n var substyle = useMemo(function () {\n return createSubstyle({\n style: style,\n className: className,\n classNames: classNames\n }, propsDecorator);\n }, [style, className, classNames, propsDecorator]);\n return substyle(modifiers, defaultStyle);\n};\n\nexport default useStyles;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { Children, useState, useEffect } from 'react';\nimport invariant from 'invariant';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport useStyles, { inline } from 'substyle';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n\n// escape RegExp special characters https://stackoverflow.com/a/9310752/5142490\nvar escapeRegex = function escapeRegex(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n};\n\nvar PLACEHOLDERS = {\n id: '__id__',\n display: '__display__'\n};\n\nvar findPositionOfCapturingGroup = function findPositionOfCapturingGroup(markup, parameterName) {\n invariant(parameterName === 'id' || parameterName === 'display', \"Second arg must be either \\\"id\\\" or \\\"display\\\", got: \\\"\".concat(parameterName, \"\\\"\")); // find positions of placeholders in the markup\n\n var indexDisplay = markup.indexOf(PLACEHOLDERS.display);\n var indexId = markup.indexOf(PLACEHOLDERS.id); // set indices to null if not found\n\n if (indexDisplay < 0) indexDisplay = null;\n if (indexId < 0) indexId = null; // markup must contain one of the mandatory placeholders\n\n invariant(indexDisplay !== null || indexId !== null, \"The markup '\".concat(markup, \"' does not contain either of the placeholders '__id__' or '__display__'\"));\n\n if (indexDisplay !== null && indexId !== null) {\n // both placeholders are used, return 0 or 1 depending on the position of the requested parameter\n return parameterName === 'id' && indexId <= indexDisplay || parameterName === 'display' && indexDisplay <= indexId ? 0 : 1;\n } // just one placeholder is being used, we'll use the captured string for both parameters\n\n\n return 0;\n};\n\nvar combineRegExps = function combineRegExps(regExps) {\n var serializedRegexParser = /^\\/(.+)\\/(\\w+)?$/;\n return new RegExp(regExps.map(function (regex) {\n var _serializedRegexParse = serializedRegexParser.exec(regex.toString()),\n _serializedRegexParse2 = _slicedToArray(_serializedRegexParse, 3),\n regexString = _serializedRegexParse2[1],\n regexFlags = _serializedRegexParse2[2];\n\n invariant(!regexFlags, \"RegExp flags are not supported. Change /\".concat(regexString, \"/\").concat(regexFlags, \" into /\").concat(regexString, \"/\"));\n return \"(\".concat(regexString, \")\");\n }).join('|'), 'g');\n};\n\nvar countPlaceholders = function countPlaceholders(markup) {\n var count = 0;\n if (markup.indexOf('__id__') >= 0) count++;\n if (markup.indexOf('__display__') >= 0) count++;\n return count;\n};\n\nvar emptyFn = function emptyFn() {}; // Finds all occurrences of the markup in the value and calls the `markupIteratee` callback for each of them.\n// The optional `textIteratee` callback is called for each plain text ranges in between these markup occurrences.\n\n\nvar iterateMentionsMarkup = function iterateMentionsMarkup(value, config, markupIteratee) {\n var textIteratee = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : emptyFn;\n var regex = combineRegExps(config.map(function (c) {\n return c.regex;\n }));\n var accOffset = 2; // first is whole match, second is the for the capturing group of first regexp component\n\n var captureGroupOffsets = config.map(function (_ref) {\n var markup = _ref.markup;\n var result = accOffset; // + 1 is for the capturing group we add around each regexp component in combineRegExps\n\n accOffset += countPlaceholders(markup) + 1;\n return result;\n });\n var match;\n var start = 0;\n var currentPlainTextIndex = 0; // detect all mention markup occurrences in the value and iterate the matches\n\n while ((match = regex.exec(value)) !== null) {\n var offset = captureGroupOffsets.find(function (o) {\n return !!match[o];\n }); // eslint-disable-line no-loop-func\n\n var mentionChildIndex = captureGroupOffsets.indexOf(offset);\n var _config$mentionChildI = config[mentionChildIndex],\n markup = _config$mentionChildI.markup,\n displayTransform = _config$mentionChildI.displayTransform;\n var idPos = offset + findPositionOfCapturingGroup(markup, 'id');\n var displayPos = offset + findPositionOfCapturingGroup(markup, 'display');\n var id = match[idPos];\n var display = displayTransform(id, match[displayPos]);\n var substr = value.substring(start, match.index);\n textIteratee(substr, start, currentPlainTextIndex);\n currentPlainTextIndex += substr.length;\n markupIteratee(match[0], match.index, currentPlainTextIndex, id, display, mentionChildIndex, start);\n currentPlainTextIndex += display.length;\n start = regex.lastIndex;\n }\n\n if (start < value.length) {\n textIteratee(value.substring(start), start, currentPlainTextIndex);\n }\n};\n\nvar getPlainText = function getPlainText(value, config) {\n var result = '';\n iterateMentionsMarkup(value, config, function (match, index, plainTextIndex, id, display) {\n result += display;\n }, function (plainText) {\n result += plainText;\n });\n return result;\n};\n\n// in the marked up value string.\n// If the passed character index lies inside a mention, the value of `inMarkupCorrection` defines the\n// correction to apply:\n// - 'START' to return the index of the mention markup's first char (default)\n// - 'END' to return the index after its last char\n// - 'NULL' to return null\n\nvar mapPlainTextIndex = function mapPlainTextIndex(value, config, indexInPlainText) {\n var inMarkupCorrection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'START';\n\n if (typeof indexInPlainText !== 'number') {\n return indexInPlainText;\n }\n\n var result;\n\n var textIteratee = function textIteratee(substr, index, substrPlainTextIndex) {\n if (result !== undefined) return;\n\n if (substrPlainTextIndex + substr.length >= indexInPlainText) {\n // found the corresponding position in the current plain text range\n result = index + indexInPlainText - substrPlainTextIndex;\n }\n };\n\n var markupIteratee = function markupIteratee(markup, index, mentionPlainTextIndex, id, display, childIndex, lastMentionEndIndex) {\n if (result !== undefined) return;\n\n if (mentionPlainTextIndex + display.length > indexInPlainText) {\n // found the corresponding position inside current match,\n // return the index of the first or after the last char of the matching markup\n // depending on whether the `inMarkupCorrection`\n if (inMarkupCorrection === 'NULL') {\n result = null;\n } else {\n result = index + (inMarkupCorrection === 'END' ? markup.length : 0);\n }\n }\n };\n\n iterateMentionsMarkup(value, config, markupIteratee, textIteratee); // when a mention is at the end of the value and we want to get the caret position\n // at the end of the string, result is undefined\n\n return result === undefined ? value.length : result;\n};\n\nvar spliceString = function spliceString(str, start, end, insert) {\n return str.substring(0, start) + insert + str.substring(end);\n};\n\n// guided by the textarea text selection ranges before and after the change\n\nvar applyChangeToValue = function applyChangeToValue(value, plainTextValue, _ref, config) {\n var selectionStartBefore = _ref.selectionStartBefore,\n selectionEndBefore = _ref.selectionEndBefore,\n selectionEndAfter = _ref.selectionEndAfter;\n var oldPlainTextValue = getPlainText(value, config);\n var lengthDelta = oldPlainTextValue.length - plainTextValue.length;\n\n if (selectionStartBefore === 'undefined') {\n selectionStartBefore = selectionEndAfter + lengthDelta;\n }\n\n if (selectionEndBefore === 'undefined') {\n selectionEndBefore = selectionStartBefore;\n } // Fixes an issue with replacing combined characters for complex input. Eg like acented letters on OSX\n\n\n if (selectionStartBefore === selectionEndBefore && selectionEndBefore === selectionEndAfter && oldPlainTextValue.length === plainTextValue.length) {\n selectionStartBefore = selectionStartBefore - 1;\n } // extract the insertion from the new plain text value\n\n\n var insert = plainTextValue.slice(selectionStartBefore, selectionEndAfter); // handling for Backspace key with no range selection\n\n var spliceStart = Math.min(selectionStartBefore, selectionEndAfter);\n var spliceEnd = selectionEndBefore;\n\n if (selectionStartBefore === selectionEndAfter) {\n // handling for Delete key with no range selection\n spliceEnd = Math.max(selectionEndBefore, selectionStartBefore + lengthDelta);\n }\n\n var mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'START');\n var mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'END');\n var controlSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'NULL');\n var controlSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'NULL');\n var willRemoveMention = controlSpliceStart === null || controlSpliceEnd === null;\n var newValue = spliceString(value, mappedSpliceStart, mappedSpliceEnd, insert);\n\n if (!willRemoveMention) {\n // test for auto-completion changes\n var controlPlainTextValue = getPlainText(newValue, config);\n\n if (controlPlainTextValue !== plainTextValue) {\n // some auto-correction is going on\n // find start of diff\n spliceStart = 0;\n\n while (plainTextValue[spliceStart] === controlPlainTextValue[spliceStart]) {\n spliceStart++;\n } // extract auto-corrected insertion\n\n\n insert = plainTextValue.slice(spliceStart, selectionEndAfter); // find index of the unchanged remainder\n\n spliceEnd = oldPlainTextValue.lastIndexOf(plainTextValue.substring(selectionEndAfter)); // re-map the corrected indices\n\n mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'START');\n mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'END');\n newValue = spliceString(value, mappedSpliceStart, mappedSpliceEnd, insert);\n }\n }\n\n return newValue;\n};\n\n// returns a the index of of the first char of the mention in the plain text.\n// If indexInPlainText does not lie inside a mention, returns indexInPlainText.\n\nvar findStartOfMentionInPlainText = function findStartOfMentionInPlainText(value, config, indexInPlainText) {\n var result = indexInPlainText;\n var foundMention = false;\n\n var markupIteratee = function markupIteratee(markup, index, mentionPlainTextIndex, id, display, childIndex, lastMentionEndIndex) {\n if (mentionPlainTextIndex <= indexInPlainText && mentionPlainTextIndex + display.length > indexInPlainText) {\n result = mentionPlainTextIndex;\n foundMention = true;\n }\n };\n\n iterateMentionsMarkup(value, config, markupIteratee);\n\n if (foundMention) {\n return result;\n }\n};\n\nvar getMentions = function getMentions(value, config) {\n var mentions = [];\n iterateMentionsMarkup(value, config, function (match, index, plainTextIndex, id, display, childIndex, start) {\n mentions.push({\n id: id,\n display: display,\n childIndex: childIndex,\n index: index,\n plainTextIndex: plainTextIndex\n });\n });\n return mentions;\n};\n\nvar getSuggestionHtmlId = function getSuggestionHtmlId(prefix, id) {\n return \"\".concat(prefix, \"-\").concat(id);\n};\n\nvar countSuggestions = function countSuggestions(suggestions) {\n return Object.values(suggestions).reduce(function (acc, _ref) {\n var results = _ref.results;\n return acc + results.length;\n }, 0);\n};\n\nvar getEndOfLastMention = function getEndOfLastMention(value, config) {\n var mentions = getMentions(value, config);\n var lastMention = mentions[mentions.length - 1];\n return lastMention ? lastMention.plainTextIndex + lastMention.display.length : 0;\n};\n\nvar markupToRegex = function markupToRegex(markup) {\n var escapedMarkup = escapeRegex(markup);\n var charAfterDisplay = markup[markup.indexOf(PLACEHOLDERS.display) + PLACEHOLDERS.display.length];\n var charAfterId = markup[markup.indexOf(PLACEHOLDERS.id) + PLACEHOLDERS.id.length];\n return new RegExp(escapedMarkup.replace(PLACEHOLDERS.display, \"([^\".concat(escapeRegex(charAfterDisplay || ''), \"]+?)\")).replace(PLACEHOLDERS.id, \"([^\".concat(escapeRegex(charAfterId || ''), \"]+?)\")));\n};\n\nvar readConfigFromChildren = function readConfigFromChildren(children) {\n return Children.toArray(children).map(function (_ref) {\n var _ref$props = _ref.props,\n markup = _ref$props.markup,\n regex = _ref$props.regex,\n displayTransform = _ref$props.displayTransform;\n return {\n markup: markup,\n regex: regex ? coerceCapturingGroups(regex, markup) : markupToRegex(markup),\n displayTransform: displayTransform || function (id, display) {\n return display || id;\n }\n };\n });\n}; // make sure that the custom regex defines the correct number of capturing groups\n\n\nvar coerceCapturingGroups = function coerceCapturingGroups(regex, markup) {\n var numberOfGroups = new RegExp(regex.toString() + '|').exec('').length - 1;\n var numberOfPlaceholders = countPlaceholders(markup);\n invariant(numberOfGroups === numberOfPlaceholders, \"Number of capturing groups in RegExp \".concat(regex.toString(), \" (\").concat(numberOfGroups, \") does not match the number of placeholders in the markup '\").concat(markup, \"' (\").concat(numberOfPlaceholders, \")\"));\n return regex;\n};\n\nvar makeMentionsMarkup = function makeMentionsMarkup(markup, id, display) {\n return markup.replace(PLACEHOLDERS.id, id).replace(PLACEHOLDERS.display, display);\n};\n\n// This contains all the latin letters and the regex that match these letters with diacritics\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\nvar lettersDiacritics = [{\n base: 'A',\n letters: /(A|Ⓐ|A|À|Á|Â|Ầ|Ấ|Ẫ|Ẩ|Ã|Ā|Ă|Ằ|Ắ|Ẵ|Ẳ|Ȧ|Ǡ|Ä|Ǟ|Ả|Å|Ǻ|Ǎ|Ȁ|Ȃ|Ạ|Ậ|Ặ|Ḁ|Ą|Ⱥ|Ɐ|[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F])/g\n}, {\n base: 'AA',\n letters: /(Ꜳ|[\\uA732])/g\n}, {\n base: 'AE',\n letters: /(Æ|Ǽ|Ǣ|[\\u00C6\\u01FC\\u01E2])/g\n}, {\n base: 'AO',\n letters: /(Ꜵ|[\\uA734])/g\n}, {\n base: 'AU',\n letters: /(Ꜷ|[\\uA736])/g\n}, {\n base: 'AV',\n letters: /(Ꜹ|Ꜻ|[\\uA738\\uA73A])/g\n}, {\n base: 'AY',\n letters: /(Ꜽ|[\\uA73C])/g\n}, {\n base: 'B',\n letters: /(B|Ⓑ|B|Ḃ|Ḅ|Ḇ|Ƀ|Ƃ|Ɓ|[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181])/g\n}, {\n base: 'C',\n letters: /(C|Ⓒ|C|Ć|Ĉ|Ċ|Č|Ç|Ḉ|Ƈ|Ȼ|Ꜿ|[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E])/g\n}, {\n base: 'D',\n letters: /(D|Ⓓ|D|Ḋ|Ď|Ḍ|Ḑ|Ḓ|Ḏ|Đ|Ƌ|Ɗ|Ɖ|Ꝺ|Ð|[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\\u00D0])/g\n}, {\n base: 'DZ',\n letters: /(DZ|DŽ|[\\u01F1\\u01C4])/g\n}, {\n base: 'Dz',\n letters: /(Dz|Dž|[\\u01F2\\u01C5])/g\n}, {\n base: 'E',\n letters: /(E|Ⓔ|E|È|É|Ê|Ề|Ế|Ễ|Ể|Ẽ|Ē|Ḕ|Ḗ|Ĕ|Ė|Ë|Ẻ|Ě|Ȅ|Ȇ|Ẹ|Ệ|Ȩ|Ḝ|Ę|Ḙ|Ḛ|Ɛ|Ǝ|[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E])/g\n}, {\n base: 'F',\n letters: /(F|Ⓕ|F|Ḟ|Ƒ|Ꝼ|[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B])/g\n}, {\n base: 'G',\n letters: /(G|Ⓖ|G|Ǵ|Ĝ|Ḡ|Ğ|Ġ|Ǧ|Ģ|Ǥ|Ɠ|Ꞡ|Ᵹ|Ꝿ|[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E])/g\n}, {\n base: 'H',\n letters: /(H|Ⓗ|H|Ĥ|Ḣ|Ḧ|Ȟ|Ḥ|Ḩ|Ḫ|Ħ|Ⱨ|Ⱶ|Ɥ|[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D])/g\n}, {\n base: 'I',\n letters: /(I|Ⓘ|I|Ì|Í|Î|Ĩ|Ī|Ĭ|İ|Ï|Ḯ|Ỉ|Ǐ|Ȉ|Ȋ|Ị|Į|Ḭ|Ɨ|[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197])/g\n}, {\n base: 'J',\n letters: /(J|Ⓙ|J|Ĵ|Ɉ|[\\u004A\\u24BF\\uFF2A\\u0134\\u0248])/g\n}, {\n base: 'K',\n letters: /(K|Ⓚ|K|Ḱ|Ǩ|Ḳ|Ķ|Ḵ|Ƙ|Ⱪ|Ꝁ|Ꝃ|Ꝅ|Ꞣ|[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2])/g\n}, {\n base: 'L',\n letters: /(L|Ⓛ|L|Ŀ|Ĺ|Ľ|Ḷ|Ḹ|Ļ|Ḽ|Ḻ|Ł|Ƚ|Ɫ|Ⱡ|Ꝉ|Ꝇ|Ꞁ|[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780])/g\n}, {\n base: 'LJ',\n letters: /(LJ|[\\u01C7])/g\n}, {\n base: 'Lj',\n letters: /(Lj|[\\u01C8])/g\n}, {\n base: 'M',\n letters: /(M|Ⓜ|M|Ḿ|Ṁ|Ṃ|Ɱ|Ɯ|[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C])/g\n}, {\n base: 'N',\n letters: /(N|Ⓝ|N|Ǹ|Ń|Ñ|Ṅ|Ň|Ṇ|Ņ|Ṋ|Ṉ|Ƞ|Ɲ|Ꞑ|Ꞥ|Ŋ|[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\\u014A])/g\n}, {\n base: 'NJ',\n letters: /(NJ|[\\u01CA])/g\n}, {\n base: 'Nj',\n letters: /(Nj|[\\u01CB])/g\n}, {\n base: 'O',\n letters: /(O|Ⓞ|O|Ò|Ó|Ô|Ồ|Ố|Ỗ|Ổ|Õ|Ṍ|Ȭ|Ṏ|Ō|Ṑ|Ṓ|Ŏ|Ȯ|Ȱ|Ö|Ȫ|Ỏ|Ő|Ǒ|Ȍ|Ȏ|Ơ|Ờ|Ớ|Ỡ|Ở|Ợ|Ọ|Ộ|Ǫ|Ǭ|Ø|Ǿ|Ɔ|Ɵ|Ꝋ|Ꝍ|[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C])/g\n}, {\n base: 'OE',\n letters: /(Œ|[\\u0152])/g\n}, {\n base: 'OI',\n letters: /(Ƣ|[\\u01A2])/g\n}, {\n base: 'OO',\n letters: /(Ꝏ|[\\uA74E])/g\n}, {\n base: 'OU',\n letters: /(Ȣ|[\\u0222])/g\n}, {\n base: 'P',\n letters: /(P|Ⓟ|P|Ṕ|Ṗ|Ƥ|Ᵽ|Ꝑ|Ꝓ|Ꝕ|[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754])/g\n}, {\n base: 'Q',\n letters: /(Q|Ⓠ|Q|Ꝗ|Ꝙ|Ɋ|[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A])/g\n}, {\n base: 'R',\n letters: /(R|Ⓡ|R|Ŕ|Ṙ|Ř|Ȑ|Ȓ|Ṛ|Ṝ|Ŗ|Ṟ|Ɍ|Ɽ|Ꝛ|Ꞧ|Ꞃ|[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782])/g\n}, {\n base: 'S',\n letters: /(S|Ⓢ|S|ẞ|Ś|Ṥ|Ŝ|Ṡ|Š|Ṧ|Ṣ|Ṩ|Ș|Ş|Ȿ|Ꞩ|Ꞅ|[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784])/g\n}, {\n base: 'T',\n letters: /(T|Ⓣ|T|Ṫ|Ť|Ṭ|Ț|Ţ|Ṱ|Ṯ|Ŧ|Ƭ|Ʈ|Ⱦ|Ꞇ|[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786])/g\n}, {\n base: 'TH',\n letters: /(Þ|[\\u00DE])/g\n}, {\n base: 'TZ',\n letters: /(Ꜩ|[\\uA728])/g\n}, {\n base: 'U',\n letters: /(U|Ⓤ|U|Ù|Ú|Û|Ũ|Ṹ|Ū|Ṻ|Ŭ|Ü|Ǜ|Ǘ|Ǖ|Ǚ|Ủ|Ů|Ű|Ǔ|Ȕ|Ȗ|Ư|Ừ|Ứ|Ữ|Ử|Ự|Ụ|Ṳ|Ų|Ṷ|Ṵ|Ʉ|[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244])/g\n}, {\n base: 'V',\n letters: /(V|Ⓥ|V|Ṽ|Ṿ|Ʋ|Ꝟ|Ʌ|[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245])/g\n}, {\n base: 'VY',\n letters: /(Ꝡ|[\\uA760])/g\n}, {\n base: 'W',\n letters: /(W|Ⓦ|W|Ẁ|Ẃ|Ŵ|Ẇ|Ẅ|Ẉ|Ⱳ|[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72])/g\n}, {\n base: 'X',\n letters: /(X|Ⓧ|X|Ẋ|Ẍ|[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C])/g\n}, {\n base: 'Y',\n letters: /(Y|Ⓨ|Y|Ỳ|Ý|Ŷ|Ỹ|Ȳ|Ẏ|Ÿ|Ỷ|Ỵ|Ƴ|Ɏ|Ỿ|[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE])/g\n}, {\n base: 'Z',\n letters: /(Z|Ⓩ|Z|Ź|Ẑ|Ż|Ž|Ẓ|Ẕ|Ƶ|Ȥ|Ɀ|Ⱬ|Ꝣ|[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762])/g\n}, {\n base: 'a',\n letters: /(a|ⓐ|a|ẚ|à|á|â|ầ|ấ|ẫ|ẩ|ã|ā|ă|ằ|ắ|ẵ|ẳ|ȧ|ǡ|ä|ǟ|ả|å|ǻ|ǎ|ȁ|ȃ|ạ|ậ|ặ|ḁ|ą|ⱥ|ɐ|[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250])/g\n}, {\n base: 'aa',\n letters: /(ꜳ|[\\uA733])/g\n}, {\n base: 'ae',\n letters: /(æ|ǽ|ǣ|[\\u00E6\\u01FD\\u01E3])/g\n}, {\n base: 'ao',\n letters: /(ꜵ|[\\uA735])/g\n}, {\n base: 'au',\n letters: /(ꜷ|[\\uA737])/g\n}, {\n base: 'av',\n letters: /(ꜹ|ꜻ|[\\uA739\\uA73B])/g\n}, {\n base: 'ay',\n letters: /(ꜽ|[\\uA73D])/g\n}, {\n base: 'b',\n letters: /(b|ⓑ|b|ḃ|ḅ|ḇ|ƀ|ƃ|ɓ|[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253])/g\n}, {\n base: 'c',\n letters: /(c|ⓒ|c|ć|ĉ|ċ|č|ç|ḉ|ƈ|ȼ|ꜿ|ↄ|[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184])/g\n}, {\n base: 'd',\n letters: /(d|ⓓ|d|ḋ|ď|ḍ|ḑ|ḓ|ḏ|đ|ƌ|ɖ|ɗ|ꝺ|ð|[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\\u00F0])/g\n}, {\n base: 'dz',\n letters: /(dz|dž|[\\u01F3\\u01C6])/g\n}, {\n base: 'e',\n letters: /(e|ⓔ|e|è|é|ê|ề|ế|ễ|ể|ẽ|ē|ḕ|ḗ|ĕ|ė|ë|ẻ|ě|ȅ|ȇ|ẹ|ệ|ȩ|ḝ|ę|ḙ|ḛ|ɇ|ɛ|ǝ|[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD])/g\n}, {\n base: 'f',\n letters: /(f|ⓕ|f|ḟ|ƒ|ꝼ|[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C])/g\n}, {\n base: 'g',\n letters: /(g|ⓖ|g|ǵ|ĝ|ḡ|ğ|ġ|ǧ|ģ|ǥ|ɠ|ꞡ|ᵹ|ꝿ|[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F])/g\n}, {\n base: 'h',\n letters: /(h|ⓗ|h|ĥ|ḣ|ḧ|ȟ|ḥ|ḩ|ḫ|ẖ|ħ|ⱨ|ⱶ|ɥ|[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265])/g\n}, {\n base: 'hv',\n letters: /(ƕ|[\\u0195])/g\n}, {\n base: 'i',\n letters: /(i|ⓘ|i|ì|í|î|ĩ|ī|ĭ|ï|ḯ|ỉ|ǐ|ȉ|ȋ|ị|į|ḭ|ɨ|ı|[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131])/g\n}, {\n base: 'ij',\n letters: /(ij|[\\u0133])/g\n}, {\n base: 'j',\n letters: /(j|ⓙ|j|ĵ|ǰ|ɉ|[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249])/g\n}, {\n base: 'k',\n letters: /(k|ⓚ|k|ḱ|ǩ|ḳ|ķ|ḵ|ƙ|ⱪ|ꝁ|ꝃ|ꝅ|ꞣ|[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3])/g\n}, {\n base: 'l',\n letters: /(l|ⓛ|l|ŀ|ĺ|ľ|ḷ|ḹ|ļ|ḽ|ḻ|ł|ƚ|ɫ|ⱡ|ꝉ|ꞁ|ꝇ|[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747])/g\n}, {\n base: 'lj',\n letters: /(lj|[\\u01C9])/g\n}, {\n base: 'm',\n letters: /(m|ⓜ|m|ḿ|ṁ|ṃ|ɱ|ɯ|[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F])/g\n}, {\n base: 'n',\n letters: /(n|ⓝ|n|ǹ|ń|ñ|ṅ|ň|ṇ|ņ|ṋ|ṉ|ƞ|ɲ|ʼn|ꞑ|ꞥ|ŋ|[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\\u014B])/g\n}, {\n base: 'nj',\n letters: /(nj|[\\u01CC])/g\n}, {\n base: 'o',\n letters: /(o|ⓞ|o|ò|ó|ô|ồ|ố|ỗ|ổ|õ|ṍ|ȭ|ṏ|ō|ṑ|ṓ|ŏ|ȯ|ȱ|ö|ȫ|ỏ|ő|ǒ|ȍ|ȏ|ơ|ờ|ớ|ỡ|ở|ợ|ọ|ộ|ǫ|ǭ|ø|ǿ|ɔ|ꝋ|ꝍ|ɵ|[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275])/g\n}, {\n base: 'oe',\n letters: /(œ|[\\u0153])/g\n}, {\n base: 'oi',\n letters: /(ƣ|[\\u01A3])/g\n}, {\n base: 'ou',\n letters: /(ȣ|[\\u0223])/g\n}, {\n base: 'oo',\n letters: /(ꝏ|[\\uA74F])/g\n}, {\n base: 'p',\n letters: /(p|ⓟ|p|ṕ|ṗ|ƥ|ᵽ|ꝑ|ꝓ|ꝕ|[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755])/g\n}, {\n base: 'q',\n letters: /(q|ⓠ|q|ɋ|ꝗ|ꝙ|[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759])/g\n}, {\n base: 'r',\n letters: /(r|ⓡ|r|ŕ|ṙ|ř|ȑ|ȓ|ṛ|ṝ|ŗ|ṟ|ɍ|ɽ|ꝛ|ꞧ|ꞃ|[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783])/g\n}, {\n base: 's',\n letters: /(s|ⓢ|s|ś|ṥ|ŝ|ṡ|š|ṧ|ṣ|ṩ|ș|ş|ȿ|ꞩ|ꞅ|ẛ|ſ|[\\u0073\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\\u017F])/g\n}, {\n base: 'ss',\n letters: /(ß|[\\u00DF])/g\n}, {\n base: 't',\n letters: /(t|ⓣ|t|ṫ|ẗ|ť|ṭ|ț|ţ|ṱ|ṯ|ŧ|ƭ|ʈ|ⱦ|ꞇ|[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787])/g\n}, {\n base: 'th',\n letters: /(þ|[\\u00FE])/g\n}, {\n base: 'tz',\n letters: /(ꜩ|[\\uA729])/g\n}, {\n base: 'u',\n letters: /(u|ⓤ|u|ù|ú|û|ũ|ṹ|ū|ṻ|ŭ|ü|ǜ|ǘ|ǖ|ǚ|ủ|ů|ű|ǔ|ȕ|ȗ|ư|ừ|ứ|ữ|ử|ự|ụ|ṳ|ų|ṷ|ṵ|ʉ|[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289])/g\n}, {\n base: 'v',\n letters: /(v|ⓥ|v|ṽ|ṿ|ʋ|ꝟ|ʌ|[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C])/g\n}, {\n base: 'vy',\n letters: /(ꝡ|[\\uA761])/g\n}, {\n base: 'w',\n letters: /(w|ⓦ|w|ẁ|ẃ|ŵ|ẇ|ẅ|ẘ|ẉ|ⱳ|[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73])/g\n}, {\n base: 'x',\n letters: /(x|ⓧ|x|ẋ|ẍ|[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D])/g\n}, {\n base: 'y',\n letters: /(y|ⓨ|y|ỳ|ý|ŷ|ỹ|ȳ|ẏ|ÿ|ỷ|ẙ|ỵ|ƴ|ɏ|ỿ|[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF])/g\n}, {\n base: 'z',\n letters: /(z|ⓩ|z|ź|ẑ|ż|ž|ẓ|ẕ|ƶ|ȥ|ɀ|ⱬ|ꝣ|[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763])/g\n}];\n\nvar removeAccents = function removeAccents(str) {\n var formattedStr = str;\n lettersDiacritics.forEach(function (letterDiacritics) {\n formattedStr = formattedStr.replace(letterDiacritics.letters, letterDiacritics.base);\n });\n return formattedStr;\n};\n\nvar normalizeString = function normalizeString(str) {\n return removeAccents(str).toLowerCase();\n};\n\nvar getSubstringIndex = function getSubstringIndex(str, substr, ignoreAccents) {\n if (!ignoreAccents) {\n return str.toLowerCase().indexOf(substr.toLowerCase());\n }\n\n return normalizeString(str).indexOf(normalizeString(substr));\n};\n\nvar isIE = function isIE() {\n return !!document.documentMode;\n};\n\nvar isNumber = function isNumber(val) {\n return typeof val === 'number';\n};\n\nvar keys = function keys(obj) {\n return obj === Object(obj) ? Object.keys(obj) : [];\n};\n\nvar omit = function omit(obj) {\n var _ref;\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var keys = (_ref = []).concat.apply(_ref, rest);\n\n return Object.keys(obj).reduce(function (acc, k) {\n if (obj.hasOwnProperty(k) && !keys.includes(k) && obj[k] !== undefined) {\n acc[k] = obj[k];\n }\n\n return acc;\n }, {});\n};\n\nvar _excluded = [\"style\", \"className\", \"classNames\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction createDefaultStyle(defaultStyle, getModifiers) {\n var enhance = function enhance(ComponentToWrap) {\n var DefaultStyleEnhancer = function DefaultStyleEnhancer(_ref) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var modifiers = getModifiers ? getModifiers(rest) : undefined;\n var styles = useStyles(defaultStyle, {\n style: style,\n className: className,\n classNames: classNames\n }, modifiers);\n return /*#__PURE__*/React.createElement(ComponentToWrap, _extends({}, rest, {\n style: styles\n }));\n };\n\n var displayName = ComponentToWrap.displayName || ComponentToWrap.name || 'Component';\n DefaultStyleEnhancer.displayName = \"defaultStyle(\".concat(displayName, \")\"); // return DefaultStyleEnhancer\n\n return /*#__PURE__*/React.forwardRef(function (props, ref) {\n return DefaultStyleEnhancer(_objectSpread(_objectSpread({}, props), {}, {\n ref: ref\n }));\n });\n };\n\n return enhance;\n}\n\nvar _generateComponentKey = function _generateComponentKey(usedKeys, id) {\n if (!usedKeys.hasOwnProperty(id)) {\n usedKeys[id] = 0;\n } else {\n usedKeys[id]++;\n }\n\n return id + '_' + usedKeys[id];\n};\n\nfunction Highlighter(_ref) {\n var selectionStart = _ref.selectionStart,\n selectionEnd = _ref.selectionEnd,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value,\n onCaretPositionChange = _ref.onCaretPositionChange,\n containerRef = _ref.containerRef,\n children = _ref.children,\n singleLine = _ref.singleLine,\n style = _ref.style;\n\n var _useState = useState({\n left: undefined,\n top: undefined\n }),\n _useState2 = _slicedToArray(_useState, 2),\n position = _useState2[0],\n setPosition = _useState2[1];\n\n var _useState3 = useState(),\n _useState4 = _slicedToArray(_useState3, 2),\n caretElement = _useState4[0],\n setCaretElement = _useState4[1];\n\n useEffect(function () {\n notifyCaretPosition();\n });\n\n var notifyCaretPosition = function notifyCaretPosition() {\n if (!caretElement) {\n return;\n }\n\n var offsetLeft = caretElement.offsetLeft,\n offsetTop = caretElement.offsetTop;\n\n if (position.left === offsetLeft && position.top === offsetTop) {\n return;\n }\n\n var newPosition = {\n left: offsetLeft,\n top: offsetTop\n };\n setPosition(newPosition);\n onCaretPositionChange(newPosition);\n };\n\n var config = readConfigFromChildren(children);\n var caretPositionInMarkup;\n\n if (selectionEnd === selectionStart) {\n caretPositionInMarkup = mapPlainTextIndex(value, config, selectionStart, 'START');\n }\n\n var resultComponents = [];\n var componentKeys = {};\n var components = resultComponents;\n var substringComponentKey = 0;\n\n var textIteratee = function textIteratee(substr, index, indexInPlainText) {\n // check whether the caret element has to be inserted inside the current plain substring\n if (isNumber(caretPositionInMarkup) && caretPositionInMarkup >= index && caretPositionInMarkup <= index + substr.length) {\n // if yes, split substr at the caret position and insert the caret component\n var splitIndex = caretPositionInMarkup - index;\n components.push(renderSubstring(substr.substring(0, splitIndex), substringComponentKey)); // add all following substrings and mention components as children of the caret component\n\n components = [renderSubstring(substr.substring(splitIndex), substringComponentKey)];\n } else {\n components.push(renderSubstring(substr, substringComponentKey));\n }\n\n substringComponentKey++;\n };\n\n var mentionIteratee = function mentionIteratee(markup, index, indexInPlainText, id, display, mentionChildIndex, lastMentionEndIndex) {\n var key = _generateComponentKey(componentKeys, id);\n\n components.push(getMentionComponentForMatch(id, display, mentionChildIndex, key));\n };\n\n var renderSubstring = function renderSubstring(string, key) {\n // set substring span to hidden, so that Emojis are not shown double in Mobile Safari\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, style('substring'), {\n key: key\n }), string);\n };\n\n var getMentionComponentForMatch = function getMentionComponentForMatch(id, display, mentionChildIndex, key) {\n var props = {\n id: id,\n display: display,\n key: key\n };\n var child = Children.toArray(children)[mentionChildIndex];\n return /*#__PURE__*/React.cloneElement(child, props);\n };\n\n var renderHighlighterCaret = function renderHighlighterCaret(children) {\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, style('caret'), {\n ref: setCaretElement,\n key: \"caret\"\n }), children);\n };\n\n iterateMentionsMarkup(value, config, mentionIteratee, textIteratee); // append a span containing a space, to ensure the last text line has the correct height\n\n components.push(' ');\n\n if (components !== resultComponents) {\n // if a caret component is to be rendered, add all components that followed as its children\n resultComponents.push(renderHighlighterCaret(components));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, style, {\n ref: containerRef\n }), resultComponents);\n}\n\nHighlighter.propTypes = {\n selectionStart: PropTypes.number,\n selectionEnd: PropTypes.number,\n value: PropTypes.string.isRequired,\n onCaretPositionChange: PropTypes.func.isRequired,\n containerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n })]),\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired\n};\nvar styled = createDefaultStyle({\n position: 'relative',\n boxSizing: 'border-box',\n width: '100%',\n color: 'transparent',\n overflow: 'hidden',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n border: '1px solid transparent',\n textAlign: 'start',\n '&singleLine': {\n whiteSpace: 'pre',\n wordWrap: null\n },\n substring: {\n visibility: 'hidden'\n }\n}, function (props) {\n return {\n '&singleLine': props.singleLine\n };\n});\nvar Highlighter$1 = styled(Highlighter);\n\nfunction Suggestion(_ref) {\n var id = _ref.id,\n focused = _ref.focused,\n ignoreAccents = _ref.ignoreAccents,\n index = _ref.index,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n query = _ref.query,\n renderSuggestion = _ref.renderSuggestion,\n suggestion = _ref.suggestion,\n style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var rest = {\n onClick: onClick,\n onMouseEnter: onMouseEnter\n };\n\n var renderContent = function renderContent() {\n var display = getDisplay();\n var highlightedDisplay = renderHighlightedDisplay(display);\n\n if (renderSuggestion) {\n return renderSuggestion(suggestion, query, highlightedDisplay, index, focused);\n }\n\n return highlightedDisplay;\n };\n\n var getDisplay = function getDisplay() {\n if (typeof suggestion === 'string') {\n return suggestion;\n }\n\n var id = suggestion.id,\n display = suggestion.display;\n\n if (id === undefined || !display) {\n return id;\n }\n\n return display;\n };\n\n var renderHighlightedDisplay = function renderHighlightedDisplay(display) {\n var i = getSubstringIndex(display, query, ignoreAccents);\n\n if (i === -1) {\n return /*#__PURE__*/React.createElement(\"span\", style('display'), display);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", style('display'), display.substring(0, i), /*#__PURE__*/React.createElement(\"b\", style('highlight'), display.substring(i, i + query.length)), display.substring(i + query.length));\n };\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n id: id,\n role: \"option\",\n \"aria-selected\": focused\n }, rest, style), renderContent());\n}\n\nSuggestion.propTypes = {\n id: PropTypes.string.isRequired,\n query: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n ignoreAccents: PropTypes.bool,\n suggestion: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n display: PropTypes.string\n })]).isRequired,\n renderSuggestion: PropTypes.func,\n focused: PropTypes.bool\n};\nvar styled$1 = createDefaultStyle({\n cursor: 'pointer'\n}, function (props) {\n return {\n '&focused': props.focused\n };\n});\nvar Suggestion$1 = styled$1(Suggestion);\n\nfunction LoadingIndicator(_ref) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var styles = useStyles(defaultstyle, {\n style: style,\n className: className,\n classNames: classNames\n });\n var spinnerStyles = styles('spinner');\n return /*#__PURE__*/React.createElement(\"div\", styles, /*#__PURE__*/React.createElement(\"div\", spinnerStyles, /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element1'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element2'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element3'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element4'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element5']))));\n}\n\nvar defaultstyle = {};\n\nfunction SuggestionsOverlay(_ref) {\n var id = _ref.id,\n _ref$suggestions = _ref.suggestions,\n suggestions = _ref$suggestions === void 0 ? {} : _ref$suggestions,\n a11ySuggestionsListLabel = _ref.a11ySuggestionsListLabel,\n focusIndex = _ref.focusIndex,\n position = _ref.position,\n left = _ref.left,\n right = _ref.right,\n top = _ref.top,\n scrollFocusedIntoView = _ref.scrollFocusedIntoView,\n isLoading = _ref.isLoading,\n isOpened = _ref.isOpened,\n _ref$onSelect = _ref.onSelect,\n onSelect = _ref$onSelect === void 0 ? function () {\n return null;\n } : _ref$onSelect,\n ignoreAccents = _ref.ignoreAccents,\n containerRef = _ref.containerRef,\n children = _ref.children,\n style = _ref.style,\n customSuggestionsContainer = _ref.customSuggestionsContainer,\n onMouseDown = _ref.onMouseDown,\n onMouseEnter = _ref.onMouseEnter;\n\n var _useState = useState(undefined),\n _useState2 = _slicedToArray(_useState, 2),\n ulElement = _useState2[0],\n setUlElement = _useState2[1];\n\n useEffect(function () {\n if (!ulElement || ulElement.offsetHeight >= ulElement.scrollHeight || !scrollFocusedIntoView) {\n return;\n }\n\n var scrollTop = ulElement.scrollTop;\n\n var _ulElement$children$f = ulElement.children[focusIndex].getBoundingClientRect(),\n top = _ulElement$children$f.top,\n bottom = _ulElement$children$f.bottom;\n\n var _ulElement$getBoundin = ulElement.getBoundingClientRect(),\n topContainer = _ulElement$getBoundin.top;\n\n top = top - topContainer + scrollTop;\n bottom = bottom - topContainer + scrollTop;\n\n if (top < scrollTop) {\n ulElement.scrollTop = top;\n } else if (bottom > ulElement.offsetHeight) {\n ulElement.scrollTop = bottom - ulElement.offsetHeight;\n }\n }, [focusIndex, scrollFocusedIntoView, ulElement]);\n\n var renderSuggestions = function renderSuggestions() {\n var suggestionsToRender = /*#__PURE__*/React.createElement(\"ul\", _extends({\n ref: setUlElement,\n id: id,\n role: \"listbox\",\n \"aria-label\": a11ySuggestionsListLabel\n }, style('list')), Object.values(suggestions).reduce(function (accResults, _ref2) {\n var results = _ref2.results,\n queryInfo = _ref2.queryInfo;\n return [].concat(_toConsumableArray(accResults), _toConsumableArray(results.map(function (result, index) {\n return renderSuggestion(result, queryInfo, accResults.length + index);\n })));\n }, []));\n if (customSuggestionsContainer) return customSuggestionsContainer(suggestionsToRender);\n return suggestionsToRender;\n };\n\n var renderSuggestion = function renderSuggestion(result, queryInfo, index) {\n var isFocused = index === focusIndex;\n var childIndex = queryInfo.childIndex,\n query = queryInfo.query;\n var renderSuggestion = Children.toArray(children)[childIndex].props.renderSuggestion;\n return /*#__PURE__*/React.createElement(Suggestion$1, {\n style: style('item'),\n key: \"\".concat(childIndex, \"-\").concat(getID(result)),\n id: getSuggestionHtmlId(id, index),\n query: query,\n index: index,\n ignoreAccents: ignoreAccents,\n renderSuggestion: renderSuggestion,\n suggestion: result,\n focused: isFocused,\n onClick: function onClick() {\n return select(result, queryInfo);\n },\n onMouseEnter: function onMouseEnter() {\n return handleMouseEnter(index);\n }\n });\n };\n\n var renderLoadingIndicator = function renderLoadingIndicator() {\n if (!isLoading) {\n return;\n }\n\n return /*#__PURE__*/React.createElement(LoadingIndicator, {\n style: style('loadingIndicator')\n });\n };\n\n var handleMouseEnter = function handleMouseEnter(index, ev) {\n if (onMouseEnter) {\n onMouseEnter(index);\n }\n };\n\n var select = function select(suggestion, queryInfo) {\n onSelect(suggestion, queryInfo);\n };\n\n var getID = function getID(suggestion) {\n if (typeof suggestion === 'string') {\n return suggestion;\n }\n\n return suggestion.id;\n };\n\n if (!isOpened) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, inline({\n position: position || 'absolute',\n left: left,\n right: right,\n top: top\n }, style), {\n onMouseDown: onMouseDown,\n ref: containerRef\n }), renderSuggestions(), renderLoadingIndicator());\n}\n\nSuggestionsOverlay.propTypes = {\n id: PropTypes.string.isRequired,\n suggestions: PropTypes.object.isRequired,\n a11ySuggestionsListLabel: PropTypes.string,\n focusIndex: PropTypes.number,\n position: PropTypes.string,\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n scrollFocusedIntoView: PropTypes.bool,\n isLoading: PropTypes.bool,\n isOpened: PropTypes.bool.isRequired,\n onSelect: PropTypes.func,\n ignoreAccents: PropTypes.bool,\n customSuggestionsContainer: PropTypes.func,\n containerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n })])\n};\nvar styled$2 = createDefaultStyle({\n zIndex: 1,\n backgroundColor: 'white',\n marginTop: 14,\n minWidth: 100,\n list: {\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n }\n});\nvar SuggestionsOverlay$1 = styled$2(SuggestionsOverlay);\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar makeTriggerRegex = function makeTriggerRegex(trigger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (trigger instanceof RegExp) {\n return trigger;\n } else {\n var allowSpaceInQuery = options.allowSpaceInQuery;\n var escapedTriggerChar = escapeRegex(trigger); // first capture group is the part to be replaced on completion\n // second capture group is for extracting the search query\n\n return new RegExp(\"(?:^|\\\\s)(\".concat(escapedTriggerChar, \"([^\").concat(allowSpaceInQuery ? '' : '\\\\s').concat(escapedTriggerChar, \"]*))$\"));\n }\n};\n\nvar getDataProvider = function getDataProvider(data, ignoreAccents) {\n if (data instanceof Array) {\n // if data is an array, create a function to query that\n return function (query, callback) {\n var results = [];\n\n for (var i = 0, l = data.length; i < l; ++i) {\n var display = data[i].display || data[i].id;\n\n if (getSubstringIndex(display, query, ignoreAccents) >= 0) {\n results.push(data[i]);\n }\n }\n\n return results;\n };\n } else {\n // expect data to be a query function\n return data;\n }\n};\n\nvar KEY = {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n UP: 38,\n DOWN: 40\n};\nvar isComposing = false;\nvar propTypes = {\n /**\n * If set to `true` a regular text input element will be rendered\n * instead of a textarea\n */\n singleLine: PropTypes.bool,\n allowSpaceInQuery: PropTypes.bool,\n allowSuggestionsAboveCursor: PropTypes.bool,\n forceSuggestionsAboveCursor: PropTypes.bool,\n ignoreAccents: PropTypes.bool,\n a11ySuggestionsListLabel: PropTypes.string,\n value: PropTypes.string,\n onKeyDown: PropTypes.func,\n customSuggestionsContainer: PropTypes.func,\n onSelect: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n suggestionsPortalHost: typeof Element === 'undefined' ? PropTypes.any : PropTypes.PropTypes.instanceOf(Element),\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n })]),\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired\n};\n\nvar MentionsInput = /*#__PURE__*/function (_React$Component) {\n _inherits(MentionsInput, _React$Component);\n\n var _super = _createSuper(MentionsInput);\n\n function MentionsInput(_props) {\n var _this;\n\n _classCallCheck(this, MentionsInput);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"setContainerElement\", function (el) {\n _this.containerElement = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInputProps\", function () {\n var _this$props = _this.props,\n readOnly = _this$props.readOnly,\n disabled = _this$props.disabled,\n style = _this$props.style; // pass all props that neither we, nor substyle, consume through to the input control\n\n var props = omit(_this.props, ['style', 'classNames', 'className'], // substyle props\n keys(propTypes));\n return _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, props), style('input')), {}, {\n value: _this.getPlainText(),\n onScroll: _this.updateHighlighterScroll\n }, !readOnly && !disabled && {\n onChange: _this.handleChange,\n onSelect: _this.handleSelect,\n onKeyDown: _this.handleKeyDown,\n onBlur: _this.handleBlur,\n onCompositionStart: _this.handleCompositionStart,\n onCompositionEnd: _this.handleCompositionEnd\n }), _this.isOpened() && {\n role: 'combobox',\n 'aria-controls': _this.uuidSuggestionsOverlay,\n 'aria-expanded': true,\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': getSuggestionHtmlId(_this.uuidSuggestionsOverlay, _this.state.focusIndex)\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderControl\", function () {\n var _this$props2 = _this.props,\n singleLine = _this$props2.singleLine,\n style = _this$props2.style;\n\n var inputProps = _this.getInputProps();\n\n return /*#__PURE__*/React.createElement(\"div\", style('control'), _this.renderHighlighter(), singleLine ? _this.renderInput(inputProps) : _this.renderTextarea(inputProps));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderInput\", function (props) {\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"text\",\n ref: _this.setInputRef\n }, props));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderTextarea\", function (props) {\n return /*#__PURE__*/React.createElement(\"textarea\", _extends({\n ref: _this.setInputRef\n }, props));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setInputRef\", function (el) {\n _this.inputElement = el;\n var inputRef = _this.props.inputRef;\n\n if (typeof inputRef === 'function') {\n inputRef(el);\n } else if (inputRef) {\n inputRef.current = el;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setSuggestionsElement\", function (el) {\n _this.suggestionsElement = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSuggestionsOverlay\", function () {\n if (!isNumber(_this.state.selectionStart)) {\n // do not show suggestions when the input does not have the focus\n return null;\n }\n\n var _this$state$suggestio = _this.state.suggestionsPosition,\n position = _this$state$suggestio.position,\n left = _this$state$suggestio.left,\n top = _this$state$suggestio.top,\n right = _this$state$suggestio.right;\n var suggestionsNode = /*#__PURE__*/React.createElement(SuggestionsOverlay$1, {\n id: _this.uuidSuggestionsOverlay,\n style: _this.props.style('suggestions'),\n position: position,\n left: left,\n top: top,\n right: right,\n focusIndex: _this.state.focusIndex,\n scrollFocusedIntoView: _this.state.scrollFocusedIntoView,\n containerRef: _this.setSuggestionsElement,\n suggestions: _this.state.suggestions,\n customSuggestionsContainer: _this.props.customSuggestionsContainer,\n onSelect: _this.addMention,\n onMouseDown: _this.handleSuggestionsMouseDown,\n onMouseEnter: _this.handleSuggestionsMouseEnter,\n isLoading: _this.isLoading(),\n isOpened: _this.isOpened(),\n ignoreAccents: _this.props.ignoreAccents,\n a11ySuggestionsListLabel: _this.props.a11ySuggestionsListLabel\n }, _this.props.children);\n\n if (_this.props.suggestionsPortalHost) {\n return /*#__PURE__*/ReactDOM.createPortal(suggestionsNode, _this.props.suggestionsPortalHost);\n } else {\n return suggestionsNode;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderHighlighter\", function () {\n var _this$state = _this.state,\n selectionStart = _this$state.selectionStart,\n selectionEnd = _this$state.selectionEnd;\n var _this$props3 = _this.props,\n singleLine = _this$props3.singleLine,\n children = _this$props3.children,\n value = _this$props3.value,\n style = _this$props3.style;\n return /*#__PURE__*/React.createElement(Highlighter$1, {\n containerRef: _this.setHighlighterElement,\n style: style('highlighter'),\n value: value,\n singleLine: singleLine,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n onCaretPositionChange: _this.handleCaretPositionChange\n }, children);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setHighlighterElement\", function (el) {\n _this.highlighterElement = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleCaretPositionChange\", function (position) {\n _this.setState({\n caretPosition: position\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPlainText\", function () {\n return getPlainText(_this.props.value || '', readConfigFromChildren(_this.props.children));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"executeOnChange\", function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (_this.props.onChange) {\n var _this$props4;\n\n return (_this$props4 = _this.props).onChange.apply(_this$props4, [event].concat(args));\n }\n\n if (_this.props.valueLink) {\n var _this$props$valueLink;\n\n return (_this$props$valueLink = _this.props.valueLink).requestChange.apply(_this$props$valueLink, [event.target.value].concat(args));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleChange\", function (ev) {\n isComposing = false;\n\n if (isIE()) {\n // if we are inside iframe, we need to find activeElement within its contentDocument\n var currentDocument = document.activeElement && document.activeElement.contentDocument || document;\n\n if (currentDocument.activeElement !== ev.target) {\n // fix an IE bug (blur from empty input element with placeholder attribute trigger \"input\" event)\n return;\n }\n }\n\n var value = _this.props.value || '';\n var config = readConfigFromChildren(_this.props.children);\n var newPlainTextValue = ev.target.value;\n var selectionStartBefore = _this.state.selectionStart;\n\n if (selectionStartBefore == null) {\n selectionStartBefore = ev.target.selectionStart;\n }\n\n var selectionEndBefore = _this.state.selectionEnd;\n\n if (selectionEndBefore == null) {\n selectionEndBefore = ev.target.selectionEnd;\n } // Derive the new value to set by applying the local change in the textarea's plain text\n\n\n var newValue = applyChangeToValue(value, newPlainTextValue, {\n selectionStartBefore: selectionStartBefore,\n selectionEndBefore: selectionEndBefore,\n selectionEndAfter: ev.target.selectionEnd\n }, config); // In case a mention is deleted, also adjust the new plain text value\n\n newPlainTextValue = getPlainText(newValue, config); // Save current selection after change to be able to restore caret position after rerendering\n\n var selectionStart = ev.target.selectionStart;\n var selectionEnd = ev.target.selectionEnd;\n var setSelectionAfterMentionChange = false; // Adjust selection range in case a mention will be deleted by the characters outside of the\n // selection range that are automatically deleted\n\n var startOfMention = findStartOfMentionInPlainText(value, config, selectionStart);\n\n if (startOfMention !== undefined && _this.state.selectionEnd > startOfMention) {\n // only if a deletion has taken place\n selectionStart = startOfMention + (ev.nativeEvent.data ? ev.nativeEvent.data.length : 0);\n selectionEnd = selectionStart;\n setSelectionAfterMentionChange = true;\n }\n\n _this.setState({\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n setSelectionAfterMentionChange: setSelectionAfterMentionChange\n });\n\n var mentions = getMentions(newValue, config);\n\n if (ev.nativeEvent.isComposing && selectionStart === selectionEnd) {\n _this.updateMentionsQueries(_this.inputElement.value, selectionStart);\n } // Propagate change\n // let handleChange = this.getOnChange(this.props) || emptyFunction;\n\n\n var eventMock = {\n target: {\n value: newValue\n }\n }; // this.props.onChange.call(this, eventMock, newValue, newPlainTextValue, mentions);\n\n _this.executeOnChange(eventMock, newValue, newPlainTextValue, mentions);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleSelect\", function (ev) {\n // keep track of selection range / caret position\n _this.setState({\n selectionStart: ev.target.selectionStart,\n selectionEnd: ev.target.selectionEnd\n }); // do nothing while a IME composition session is active\n\n\n if (isComposing) return; // refresh suggestions queries\n\n var el = _this.inputElement;\n\n if (ev.target.selectionStart === ev.target.selectionEnd) {\n _this.updateMentionsQueries(el.value, ev.target.selectionStart);\n } else {\n _this.clearSuggestions();\n } // sync highlighters scroll position\n\n\n _this.updateHighlighterScroll();\n\n _this.props.onSelect(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (ev) {\n // do not intercept key events if the suggestions overlay is not shown\n var suggestionsCount = countSuggestions(_this.state.suggestions);\n\n if (suggestionsCount === 0 || !_this.suggestionsElement) {\n _this.props.onKeyDown(ev);\n\n return;\n }\n\n if (Object.values(KEY).indexOf(ev.keyCode) >= 0) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n switch (ev.keyCode) {\n case KEY.ESC:\n {\n _this.clearSuggestions();\n\n return;\n }\n\n case KEY.DOWN:\n {\n _this.shiftFocus(+1);\n\n return;\n }\n\n case KEY.UP:\n {\n _this.shiftFocus(-1);\n\n return;\n }\n\n case KEY.RETURN:\n {\n _this.selectFocused();\n\n return;\n }\n\n case KEY.TAB:\n {\n _this.selectFocused();\n\n return;\n }\n\n default:\n {\n return;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"shiftFocus\", function (delta) {\n var suggestionsCount = countSuggestions(_this.state.suggestions);\n\n _this.setState({\n focusIndex: (suggestionsCount + _this.state.focusIndex + delta) % suggestionsCount,\n scrollFocusedIntoView: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectFocused\", function () {\n var _this$state2 = _this.state,\n suggestions = _this$state2.suggestions,\n focusIndex = _this$state2.focusIndex;\n var _Object$values$reduce = Object.values(suggestions).reduce(function (acc, _ref) {\n var results = _ref.results,\n queryInfo = _ref.queryInfo;\n return [].concat(_toConsumableArray(acc), _toConsumableArray(results.map(function (result) {\n return {\n result: result,\n queryInfo: queryInfo\n };\n })));\n }, [])[focusIndex],\n result = _Object$values$reduce.result,\n queryInfo = _Object$values$reduce.queryInfo;\n\n _this.addMention(result, queryInfo);\n\n _this.setState({\n focusIndex: 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleBlur\", function (ev) {\n var clickedSuggestion = _this._suggestionsMouseDown;\n _this._suggestionsMouseDown = false; // only reset selection if the mousedown happened on an element\n // other than the suggestions overlay\n\n if (!clickedSuggestion) {\n _this.setState({\n selectionStart: null,\n selectionEnd: null\n });\n }\n\n window.setTimeout(function () {\n _this.updateHighlighterScroll();\n }, 1);\n\n _this.props.onBlur(ev, clickedSuggestion);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleSuggestionsMouseDown\", function (ev) {\n _this._suggestionsMouseDown = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleSuggestionsMouseEnter\", function (focusIndex) {\n _this.setState({\n focusIndex: focusIndex,\n scrollFocusedIntoView: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSuggestionsPosition\", function () {\n var caretPosition = _this.state.caretPosition;\n var _this$props5 = _this.props,\n suggestionsPortalHost = _this$props5.suggestionsPortalHost,\n allowSuggestionsAboveCursor = _this$props5.allowSuggestionsAboveCursor,\n forceSuggestionsAboveCursor = _this$props5.forceSuggestionsAboveCursor;\n\n if (!caretPosition || !_this.suggestionsElement) {\n return;\n }\n\n var suggestions = _this.suggestionsElement;\n var highlighter = _this.highlighterElement; // first get viewport-relative position (highlighter is offsetParent of caret):\n\n var caretOffsetParentRect = highlighter.getBoundingClientRect();\n var caretHeight = getComputedStyleLengthProp(highlighter, 'font-size');\n var viewportRelative = {\n left: caretOffsetParentRect.left + caretPosition.left,\n top: caretOffsetParentRect.top + caretPosition.top + caretHeight\n };\n var viewportHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n\n if (!suggestions) {\n return;\n }\n\n var position = {}; // if suggestions menu is in a portal, update position to be releative to its portal node\n\n if (suggestionsPortalHost) {\n position.position = 'fixed';\n var left = viewportRelative.left;\n var top = viewportRelative.top; // absolute/fixed positioned elements are positioned according to their entire box including margins; so we remove margins here:\n\n left -= getComputedStyleLengthProp(suggestions, 'margin-left');\n top -= getComputedStyleLengthProp(suggestions, 'margin-top'); // take into account highlighter/textinput scrolling:\n\n left -= highlighter.scrollLeft;\n top -= highlighter.scrollTop; // guard for mentions suggestions list clipped by right edge of window\n\n var viewportWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n if (left + suggestions.offsetWidth > viewportWidth) {\n position.left = Math.max(0, viewportWidth - suggestions.offsetWidth);\n } else {\n position.left = left;\n } // guard for mentions suggestions list clipped by bottom edge of window if allowSuggestionsAboveCursor set to true.\n // Move the list up above the caret if it's getting cut off by the bottom of the window, provided that the list height\n // is small enough to NOT cover up the caret\n\n\n if (allowSuggestionsAboveCursor && top + suggestions.offsetHeight > viewportHeight && suggestions.offsetHeight < top - caretHeight || forceSuggestionsAboveCursor) {\n position.top = Math.max(0, top - suggestions.offsetHeight - caretHeight);\n } else {\n position.top = top;\n }\n } else {\n var _left = caretPosition.left - highlighter.scrollLeft;\n\n var _top = caretPosition.top - highlighter.scrollTop; // guard for mentions suggestions list clipped by right edge of window\n\n\n if (_left + suggestions.offsetWidth > _this.containerElement.offsetWidth) {\n position.right = 0;\n } else {\n position.left = _left;\n } // guard for mentions suggestions list clipped by bottom edge of window if allowSuggestionsAboveCursor set to true.\n // move the list up above the caret if it's getting cut off by the bottom of the window, provided that the list height\n // is small enough to NOT cover up the caret\n\n\n if (allowSuggestionsAboveCursor && viewportRelative.top - highlighter.scrollTop + suggestions.offsetHeight > viewportHeight && suggestions.offsetHeight < caretOffsetParentRect.top - caretHeight - highlighter.scrollTop || forceSuggestionsAboveCursor) {\n position.top = _top - suggestions.offsetHeight - caretHeight;\n } else {\n position.top = _top;\n }\n }\n\n if (position.left === _this.state.suggestionsPosition.left && position.top === _this.state.suggestionsPosition.top && position.position === _this.state.suggestionsPosition.position) {\n return;\n }\n\n _this.setState({\n suggestionsPosition: position\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateHighlighterScroll\", function () {\n var input = _this.inputElement;\n var highlighter = _this.highlighterElement;\n\n if (!input || !highlighter) {\n // since the invocation of this function is deferred,\n // the whole component may have been unmounted in the meanwhile\n return;\n }\n\n highlighter.scrollLeft = input.scrollLeft;\n highlighter.scrollTop = input.scrollTop;\n highlighter.height = input.height;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleCompositionStart\", function () {\n isComposing = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleCompositionEnd\", function () {\n isComposing = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setSelection\", function (selectionStart, selectionEnd) {\n if (selectionStart === null || selectionEnd === null) return;\n var el = _this.inputElement;\n\n if (el.setSelectionRange) {\n el.setSelectionRange(selectionStart, selectionEnd);\n } else if (el.createTextRange) {\n var range = el.createTextRange();\n range.collapse(true);\n range.moveEnd('character', selectionEnd);\n range.moveStart('character', selectionStart);\n range.select();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateMentionsQueries\", function (plainTextValue, caretPosition) {\n // Invalidate previous queries. Async results for previous queries will be neglected.\n _this._queryId++;\n _this.suggestions = {};\n\n _this.setState({\n suggestions: {}\n });\n\n var value = _this.props.value || '';\n var children = _this.props.children;\n var config = readConfigFromChildren(children);\n var positionInValue = mapPlainTextIndex(value, config, caretPosition, 'NULL'); // If caret is inside of mention, do not query\n\n if (positionInValue === null) {\n return;\n } // Extract substring in between the end of the previous mention and the caret\n\n\n var substringStartIndex = getEndOfLastMention(value.substring(0, positionInValue), config);\n var substring = plainTextValue.substring(substringStartIndex, caretPosition); // Check if suggestions have to be shown:\n // Match the trigger patterns of all Mention children on the extracted substring\n\n React.Children.forEach(children, function (child, childIndex) {\n if (!child) {\n return;\n }\n\n var regex = makeTriggerRegex(child.props.trigger, _this.props);\n var match = substring.match(regex);\n\n if (match) {\n var querySequenceStart = substringStartIndex + substring.indexOf(match[1], match.index);\n\n _this.queryData(match[2], childIndex, querySequenceStart, querySequenceStart + match[1].length, plainTextValue);\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clearSuggestions\", function () {\n // Invalidate previous queries. Async results for previous queries will be neglected.\n _this._queryId++;\n _this.suggestions = {};\n\n _this.setState({\n suggestions: {},\n focusIndex: 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"queryData\", function (query, childIndex, querySequenceStart, querySequenceEnd, plainTextValue) {\n var _this$props6 = _this.props,\n children = _this$props6.children,\n ignoreAccents = _this$props6.ignoreAccents;\n var mentionChild = Children.toArray(children)[childIndex];\n var provideData = getDataProvider(mentionChild.props.data, ignoreAccents);\n var syncResult = provideData(query, _this.updateSuggestions.bind(null, _this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue));\n\n if (syncResult instanceof Array) {\n _this.updateSuggestions(_this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, syncResult);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSuggestions\", function (queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, results) {\n // neglect async results from previous queries\n if (queryId !== _this._queryId) return; // save in property so that multiple sync state updates from different mentions sources\n // won't overwrite each other\n\n _this.suggestions = _objectSpread$1(_objectSpread$1({}, _this.suggestions), {}, _defineProperty({}, childIndex, {\n queryInfo: {\n childIndex: childIndex,\n query: query,\n querySequenceStart: querySequenceStart,\n querySequenceEnd: querySequenceEnd,\n plainTextValue: plainTextValue\n },\n results: results\n }));\n var focusIndex = _this.state.focusIndex;\n var suggestionsCount = countSuggestions(_this.suggestions);\n\n _this.setState({\n suggestions: _this.suggestions,\n focusIndex: focusIndex >= suggestionsCount ? Math.max(suggestionsCount - 1, 0) : focusIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"addMention\", function (_ref2, _ref3) {\n var id = _ref2.id,\n display = _ref2.display;\n var childIndex = _ref3.childIndex,\n querySequenceStart = _ref3.querySequenceStart,\n querySequenceEnd = _ref3.querySequenceEnd,\n plainTextValue = _ref3.plainTextValue;\n // Insert mention in the marked up value at the correct position\n var value = _this.props.value || '';\n var config = readConfigFromChildren(_this.props.children);\n var mentionsChild = Children.toArray(_this.props.children)[childIndex];\n var _mentionsChild$props = mentionsChild.props,\n markup = _mentionsChild$props.markup,\n displayTransform = _mentionsChild$props.displayTransform,\n appendSpaceOnAdd = _mentionsChild$props.appendSpaceOnAdd,\n onAdd = _mentionsChild$props.onAdd;\n var start = mapPlainTextIndex(value, config, querySequenceStart, 'START');\n var end = start + querySequenceEnd - querySequenceStart;\n var insert = makeMentionsMarkup(markup, id, display);\n\n if (appendSpaceOnAdd) {\n insert += ' ';\n }\n\n var newValue = spliceString(value, start, end, insert); // Refocus input and set caret position to end of mention\n\n _this.inputElement.focus();\n\n var displayValue = displayTransform(id, display);\n\n if (appendSpaceOnAdd) {\n displayValue += ' ';\n }\n\n var newCaretPosition = querySequenceStart + displayValue.length;\n\n _this.setState({\n selectionStart: newCaretPosition,\n selectionEnd: newCaretPosition,\n setSelectionAfterMentionChange: true\n }); // Propagate change\n\n\n var eventMock = {\n target: {\n value: newValue\n }\n };\n var mentions = getMentions(newValue, config);\n var newPlainTextValue = spliceString(plainTextValue, querySequenceStart, querySequenceEnd, displayValue);\n\n _this.executeOnChange(eventMock, newValue, newPlainTextValue, mentions);\n\n if (onAdd) {\n onAdd(id, display, start, end);\n } // Make sure the suggestions overlay is closed\n\n\n _this.clearSuggestions();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isLoading\", function () {\n var isLoading = false;\n React.Children.forEach(_this.props.children, function (child) {\n isLoading = isLoading || child && child.props.isLoading;\n });\n return isLoading;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isOpened\", function () {\n return isNumber(_this.state.selectionStart) && (countSuggestions(_this.state.suggestions) !== 0 || _this.isLoading());\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_queryId\", 0);\n\n _this.suggestions = {};\n _this.uuidSuggestionsOverlay = Math.random().toString(16).substring(2);\n _this.handleCopy = _this.handleCopy.bind(_assertThisInitialized(_this));\n _this.handleCut = _this.handleCut.bind(_assertThisInitialized(_this));\n _this.handlePaste = _this.handlePaste.bind(_assertThisInitialized(_this));\n _this.state = {\n focusIndex: 0,\n selectionStart: null,\n selectionEnd: null,\n suggestions: {},\n caretPosition: null,\n suggestionsPosition: {},\n setSelectionAfterHandlePaste: false\n };\n return _this;\n }\n\n _createClass(MentionsInput, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('copy', this.handleCopy);\n document.addEventListener('cut', this.handleCut);\n document.addEventListener('paste', this.handlePaste);\n this.updateSuggestionsPosition();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // Update position of suggestions unless this componentDidUpdate was\n // triggered by an update to suggestionsPosition.\n if (prevState.suggestionsPosition === this.state.suggestionsPosition) {\n this.updateSuggestionsPosition();\n } // maintain selection in case a mention is added/removed causing\n // the cursor to jump to the end\n\n\n if (this.state.setSelectionAfterMentionChange) {\n this.setState({\n setSelectionAfterMentionChange: false\n });\n this.setSelection(this.state.selectionStart, this.state.selectionEnd);\n }\n\n if (this.state.setSelectionAfterHandlePaste) {\n this.setState({\n setSelectionAfterHandlePaste: false\n });\n this.setSelection(this.state.selectionStart, this.state.selectionEnd);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('copy', this.handleCopy);\n document.removeEventListener('cut', this.handleCut);\n document.removeEventListener('paste', this.handlePaste);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.setContainerElement\n }, this.props.style), this.renderControl(), this.renderSuggestionsOverlay());\n }\n }, {\n key: \"handlePaste\",\n value: function handlePaste(event) {\n if (event.target !== this.inputElement) {\n return;\n }\n\n if (!this.supportsClipboardActions(event)) {\n return;\n }\n\n event.preventDefault();\n var _this$state3 = this.state,\n selectionStart = _this$state3.selectionStart,\n selectionEnd = _this$state3.selectionEnd;\n var _this$props7 = this.props,\n value = _this$props7.value,\n children = _this$props7.children;\n var config = readConfigFromChildren(children);\n var markupStartIndex = mapPlainTextIndex(value, config, selectionStart, 'START');\n var markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, 'END');\n var pastedMentions = event.clipboardData.getData('text/react-mentions');\n var pastedData = event.clipboardData.getData('text/plain');\n var newValue = spliceString(value, markupStartIndex, markupEndIndex, pastedMentions || pastedData).replace(/\\r/g, '');\n var newPlainTextValue = getPlainText(newValue, config);\n var eventMock = {\n target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {\n value: newValue\n })\n };\n this.executeOnChange(eventMock, newValue, newPlainTextValue, getMentions(newValue, config)); // Move the cursor position to the end of the pasted data\n\n var startOfMention = findStartOfMentionInPlainText(value, config, selectionStart);\n var nextPos = (startOfMention || selectionStart) + getPlainText(pastedMentions || pastedData, config).length;\n this.setState({\n selectionStart: nextPos,\n selectionEnd: nextPos,\n setSelectionAfterHandlePaste: true\n });\n }\n }, {\n key: \"saveSelectionToClipboard\",\n value: function saveSelectionToClipboard(event) {\n // use the actual selectionStart & selectionEnd instead of the one stored\n // in state to ensure copy & paste also works on disabled inputs & textareas\n var selectionStart = this.inputElement.selectionStart;\n var selectionEnd = this.inputElement.selectionEnd;\n var _this$props8 = this.props,\n children = _this$props8.children,\n value = _this$props8.value;\n var config = readConfigFromChildren(children);\n var markupStartIndex = mapPlainTextIndex(value, config, selectionStart, 'START');\n var markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, 'END');\n event.clipboardData.setData('text/plain', event.target.value.slice(selectionStart, selectionEnd));\n event.clipboardData.setData('text/react-mentions', value.slice(markupStartIndex, markupEndIndex));\n }\n }, {\n key: \"supportsClipboardActions\",\n value: function supportsClipboardActions(event) {\n return !!event.clipboardData;\n }\n }, {\n key: \"handleCopy\",\n value: function handleCopy(event) {\n if (event.target !== this.inputElement) {\n return;\n }\n\n if (!this.supportsClipboardActions(event)) {\n return;\n }\n\n event.preventDefault();\n this.saveSelectionToClipboard(event);\n }\n }, {\n key: \"handleCut\",\n value: function handleCut(event) {\n if (event.target !== this.inputElement) {\n return;\n }\n\n if (!this.supportsClipboardActions(event)) {\n return;\n }\n\n event.preventDefault();\n this.saveSelectionToClipboard(event);\n var _this$state4 = this.state,\n selectionStart = _this$state4.selectionStart,\n selectionEnd = _this$state4.selectionEnd;\n var _this$props9 = this.props,\n children = _this$props9.children,\n value = _this$props9.value;\n var config = readConfigFromChildren(children);\n var markupStartIndex = mapPlainTextIndex(value, config, selectionStart, 'START');\n var markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, 'END');\n var newValue = [value.slice(0, markupStartIndex), value.slice(markupEndIndex)].join('');\n var newPlainTextValue = getPlainText(newValue, config);\n var eventMock = {\n target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {\n value: newPlainTextValue\n })\n };\n this.executeOnChange(eventMock, newValue, newPlainTextValue, getMentions(value, config));\n } // Handle input element's change event\n\n }]);\n\n return MentionsInput;\n}(React.Component);\n/**\n * Returns the computed length property value for the provided element.\n * Note: According to spec and testing, can count on length values coming back in pixels. See https://developer.mozilla.org/en-US/docs/Web/CSS/used_value#Difference_from_computed_value\n */\n\n\n_defineProperty(MentionsInput, \"propTypes\", propTypes);\n\n_defineProperty(MentionsInput, \"defaultProps\", {\n ignoreAccents: false,\n singleLine: false,\n allowSuggestionsAboveCursor: false,\n onKeyDown: function onKeyDown() {\n return null;\n },\n onSelect: function onSelect() {\n return null;\n },\n onBlur: function onBlur() {\n return null;\n }\n});\n\nvar getComputedStyleLengthProp = function getComputedStyleLengthProp(forElement, propertyName) {\n var length = parseFloat(window.getComputedStyle(forElement, null).getPropertyValue(propertyName));\n return isFinite(length) ? length : 0;\n};\n\nvar isMobileSafari = typeof navigator !== 'undefined' && /iPhone|iPad|iPod/i.test(navigator.userAgent);\nvar styled$3 = createDefaultStyle({\n position: 'relative',\n overflowY: 'visible',\n input: {\n display: 'block',\n width: '100%',\n position: 'absolute',\n margin: 0,\n top: 0,\n left: 0,\n boxSizing: 'border-box',\n backgroundColor: 'transparent',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit'\n },\n '&multiLine': {\n input: _objectSpread$1({\n height: '100%',\n bottom: 0,\n overflow: 'hidden',\n resize: 'none'\n }, isMobileSafari ? {\n marginTop: 1,\n marginLeft: -3\n } : null)\n }\n}, function (_ref4) {\n var singleLine = _ref4.singleLine;\n return {\n '&singleLine': singleLine,\n '&multiLine': !singleLine\n };\n});\nvar MentionsInput$1 = styled$3(MentionsInput);\n\nvar defaultStyle = {\n fontWeight: 'inherit'\n};\n\nvar Mention = function Mention(_ref) {\n var display = _ref.display,\n style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var styles = useStyles(defaultStyle, {\n style: style,\n className: className,\n classNames: classNames\n });\n return /*#__PURE__*/React.createElement(\"strong\", styles, display);\n};\n\nMention.propTypes = {\n /**\n * Called when a new mention is added in the input\n *\n * Example:\n *\n * ```js\n * function(id, display) {\n * console.log(\"user \" + display + \" was mentioned!\");\n * }\n * ```\n */\n onAdd: PropTypes.func,\n onRemove: PropTypes.func,\n renderSuggestion: PropTypes.func,\n trigger: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(RegExp)]),\n markup: PropTypes.string,\n displayTransform: PropTypes.func,\n\n /**\n * If set to `true` spaces will not interrupt matching suggestions\n */\n allowSpaceInQuery: PropTypes.bool,\n isLoading: PropTypes.bool\n};\nMention.defaultProps = {\n trigger: '@',\n markup: '@[__display__](__id__)',\n displayTransform: function displayTransform(id, display) {\n return display || id;\n },\n onAdd: function onAdd() {\n return null;\n },\n onRemove: function onRemove() {\n return null;\n },\n renderSuggestion: null,\n isLoading: false,\n appendSpaceOnAdd: false\n};\n\nexport { Mention, MentionsInput$1 as MentionsInput };\n","import React from \"react\";\n\n/**\n * React hook to generate an ID based on the provided seed props. This is mainly\n * useful for quickly generating strings from unknown values at runtime.\n */\nexport function useUIDSeed(...seedProps: unknown[]) {\n const uidPrefix = React.useMemo(\n () =>\n seedProps\n .filter(nonPrimitives)\n .map(toString)\n .map((prop) => dashify(prop))\n .join(\"-\"),\n seedProps\n );\n return React.useCallback(\n (someString: string) => {\n return uidPrefix + \"-\" + dashify(`${someString}`);\n },\n [uidPrefix]\n );\n}\n\n/**\n * Rather than add a dependency to our codebase for like 7 lines of code that\n * hasn't updated in 6 years, we're just duplicating it here. Nobody else needs\n * this, and it's not worth the overhead of adding a dependency.\n *\n * https://github.com/jonschlinkert/dashify/blob/master/index.js\n */\nfunction dashify(str: string): string {\n return str\n .trim()\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/\\W/g, (m) => (/[À-ž]/.test(m) ? m : \"-\"))\n .replace(/^-+|-+$/g, \"\")\n .toLowerCase();\n}\n\nfunction nonPrimitives(anything: unknown) {\n const type = typeof anything;\n if (type === \"string\") {\n return true;\n }\n if (type === \"number\") {\n return true;\n }\n if (type === \"boolean\") {\n return true;\n }\n return false;\n}\n\nfunction toString(primitive: unknown) {\n return `${primitive}`;\n}\n","import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Tooltip.scss\";\n\nexport default function QuestionMarkTooltipIcon({\n tooltipIconRef,\n active,\n setActive,\n onMouseEnter,\n onMouseLeave,\n}) {\n return (\n <button\n ref={tooltipIconRef}\n data-testid=\"tooltip-help-icon\"\n className={cx({\n [styles[\"tooltip-icon\"]]: true,\n [styles[\"tooltip-icon-inactive\"]]: !active,\n [styles[\"tooltip-icon-active\"]]: active,\n })}\n onFocus={() => setActive(true)}\n onBlur={() => setActive(false)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n type=\"button\"\n >\n ?\n </button>\n );\n}\n","import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Tooltip.scss\";\n\nexport default function TooltipContent({\n hangLeft,\n tooltipClassName,\n content,\n id,\n}) {\n return (\n <div\n id={id}\n className={cx(\n styles[\"tooltip-content-active-state\"],\n hangLeft && styles[\"tooltip-content-hang-left\"],\n tooltipClassName\n )}\n data-testid=\"tooltip-content\"\n role=\"tooltip\"\n >\n {content}\n </div>\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport cx from \"classnames\";\n\nimport { Popper } from \"../Popper\";\n\nimport QuestionMarkTooltipIcon from \"./QuestionMarkTooltipIcon\";\nimport styles from \"./Tooltip.scss\";\nimport TooltipContent from \"./TooltipContent\";\n\n/**\n * @typedef {object} TooltipProps\n * @prop {React.ReactNode} content Contents of the tooltip panel\n * @prop {JSX.Element} [children] The element that needs a tooltip\n * @prop {string} [className] Class of the base element\n * @prop {string} [tooltipClassName] Class name of the tooltip panel\n * @prop {Boolean} [icon] whether or not to use the `?` icon\n * @prop {Boolean} [hangLeft] whether the tooltip hangs left\n * @prop {Boolean} [showOnHover] tooltip will appear on hover\n * @prop {string} [id] id of the tooltip\n * @prop {React.Ref} [innerRef] ref of the tooltip\n * @prop {(event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void} [onClick] onClick handler passed to the tooltip wrapper div\n */\n\n/**\n * Any arbitrary tooltip\n * @param {TooltipProps} props\n */\nexport default function Tooltip({\n innerRef,\n content,\n children = null,\n className,\n tooltipClassName,\n icon = false,\n hangLeft = false,\n showOnHover = false,\n id,\n ...elementProps\n}) {\n const uuid = React.useId();\n const tooltipId = id || uuid;\n const [active, setActive] = useState(false);\n const tooltipIconRef = useRef(true);\n const hasIcon = icon;\n\n const handleClickOutside = (e) => {\n // Let \"tooltip-help-icon\" onClick handle the setActive change if icon is clicked while open\n e.target !== tooltipIconRef.current && setActive(false);\n };\n\n const handleTypeEscape = (e) => {\n if (e.key === \"Escape\" && active) {\n setActive(false);\n }\n };\n\n useEffect(() => {\n if (active) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }\n }, [active]);\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleTypeEscape);\n\n return () => {\n document.removeEventListener(\"keydown\", handleTypeEscape);\n };\n }, [handleTypeEscape]);\n\n const disappearOnHover = showOnHover ? false : active;\n const appearOnHover = showOnHover ? true : active;\n return (\n <div\n className={cx(styles.tooltip, className)}\n data-testid=\"tooltip\"\n {...elementProps}\n >\n <Popper\n closeOnClickAway={handleClickOutside}\n isOpen={active}\n popupElement={\n <TooltipContent\n id={tooltipId}\n hangLeft={hangLeft}\n tooltipClassName={tooltipClassName}\n content={content}\n />\n }\n >\n {hasIcon && (\n <QuestionMarkTooltipIcon\n tooltipIconRef={tooltipIconRef}\n active={active}\n setActive={setActive}\n onMouseLeave={() => setActive(disappearOnHover)}\n onMouseEnter={() => setActive(appearOnHover)}\n />\n )}\n {!hasIcon && (\n // This prevents existing tooltips from breaking:\n <div\n className={cx(styles[\"tooltip\"], className)}\n onMouseEnter={() => setActive(true)}\n onMouseLeave={() => setActive(false)}\n onFocus={() => setActive(true)}\n onBlur={() => setActive(false)}\n tabIndex=\"0\"\n aria-describedby={tooltipId}\n ref={innerRef}\n >\n {children}\n </div>\n )}\n </Popper>\n </div>\n );\n}\n","import React, { useRef, useEffect, ReactNode } from \"react\";\n\nimport cx from \"classnames\";\n\nimport { useUIDSeed } from \"../../helpers/useUIDSeed\";\nimport { Button } from \"../Button\";\nimport { Spacer } from \"../Grid/Spacer\";\nimport { Icon } from \"../Icon\";\nimport { Text } from \"../Text\";\nimport Tooltip from \"../Tooltip\";\n\nimport styles from \"./ControlWrapper.scss\";\n\nexport interface ControlWrapperProps {\n /**\n * If true, the control will be styled for numeric input.\n */\n numeric?: boolean;\n\n /**\n * Text to display alongside numeric input.\n */\n numericText?: string;\n\n /**\n * If true, the control will be disabled.\n */\n disabled?: boolean;\n\n /**\n * Error message to display below the control.\n */\n error?: string | null;\n\n /**\n * Helper text to display below the control.\n */\n helperText?: string;\n\n /**\n * Label for the helper button.\n */\n helperButtonLabel?: React.ReactNode | null;\n\n /**\n * Callback function to handle helper button click.\n */\n helperButtonClick?: () => void;\n\n /**\n * Position of the helper button, either \"top\" or \"bottom\".\n */\n helperButtonPosition?: \"top\" | \"bottom\";\n\n /**\n * ID for the input element.\n */\n inputId: number | string;\n\n /**\n * Label for the control.\n */\n label?: ReactNode;\n\n /**\n * If true, the max length text will be displayed.\n */\n maxLengthText?: boolean;\n\n /**\n * Function to render the control.\n */\n renderControl: (props: any) => ReactNode;\n\n /**\n * If true, the control will be marked as required.\n */\n required?: boolean;\n\n /**\n * Callback function to handle clicks outside the control.\n */\n outsideClick?: null | (() => void);\n\n /**\n * Text to display for optional label.\n */\n optionalLabelText?: ReactNode;\n\n /**\n * Tooltip content to display.\n */\n tooltip?: ReactNode;\n\n /**\n * If true, the control will take the full width of its container.\n */\n fullWidth?: boolean;\n\n /**\n * Additional class names to apply to the wrapper.\n */\n wrapperClassNames?: string;\n\n /**\n * ID for the tooltip element.\n */\n tooltipId?: string;\n\n /**\n * Additional props to pass to the control.\n */\n [key: string]: any;\n}\n\n/**\n * A wrapper for individual form controls that allows you to decorate it with\n * consistent labels, helper text, optional text, and error messages.\n *\n * This is a low-level component and should be used in conjunction with another\n * form element, e.g., how `../CheckBox` works.\n */\n// eslint-disable-next-line max-lines-per-function\nexport function ControlWrapper({\n numeric,\n numericText,\n disabled,\n error = \"\",\n helperText = \"\",\n helperButtonLabel = \"\",\n helperButtonClick,\n helperButtonPosition = \"bottom\",\n inputId,\n label,\n maxLengthText = true,\n renderControl,\n required,\n outsideClick,\n optionalLabelText,\n tooltip,\n fullWidth = false,\n wrapperClassNames = \"\",\n tooltipId,\n ...inputProps\n}: ControlWrapperProps) {\n const ref = useRef<HTMLDivElement>(null);\n const generateUID = useUIDSeed(inputId, label);\n\n const handleClick = (e: MouseEvent) => {\n if (\n ref.current &&\n e.target instanceof Node &&\n !ref.current.contains(e.target)\n ) {\n outsideClick?.();\n }\n };\n\n useEffect(() => {\n if (outsideClick) {\n document.addEventListener(\"click\", handleClick, false);\n return () => {\n document.removeEventListener(\"click\", handleClick, false);\n };\n }\n }, [outsideClick]);\n\n const labelClassNames = cx(styles[\"control-wrapper__label\"], {\n [styles[\"control-wrapper__label--disabled\"]]: disabled,\n });\n\n const labelId = generateUID(\"control-wrapper-label-id\");\n const helperTextId = generateUID(\"control-wrapper-helper-text-id\");\n const errorId = generateUID(\"control-wrapper-error-id\");\n const { value, maxLength = 0, maxLengthAbove } = inputProps;\n\n const typed = safeToLocaleString(value ? value.length : 0);\n const total = safeToLocaleString(maxLength);\n const countString = `${typed}/${total}`;\n\n let helperRow;\n if (error || helperText || maxLength) {\n helperRow = (\n <div className={styles[\"control-wrapper__helper-container\"]}>\n <div className={styles[\"control-wrapper__helper-text\"]}>\n {maxLengthText && maxLength > 0 && !maxLengthAbove && (\n <div\n className={styles[\"control-wrapper__helper-count\"]}\n data-testid=\"max-length-text\"\n >\n {countString}\n </div>\n )}\n <div\n id={errorId}\n className={styles[\"control-wrapper__helper-text--error\"]}\n >\n {error && (\n <>\n <Icon icon=\"warning\" size={12} color={styles.systemRed} />\n <Spacer size=\"tiny\" orientation=\"horizontal\" />\n </>\n )}\n <div data-testid={`${errorId}-error-text`}>{error}</div>\n </div>\n <div id={helperTextId}>\n {helperText}\n {helperButtonLabel && helperButtonPosition === \"bottom\" && (\n <Button\n data-testid=\"helper-button\"\n variant=\"link\"\n onClick={helperButtonClick}\n className={styles[\"control-wrapper__helper-button\"]}\n >\n {helperButtonLabel}\n </Button>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n const inputWrapper = (\n <div className={styles[\"input-wrapper-container\"]}>\n <div\n className={cx(styles[\"control-wrapper__input-wrapper\"], {\n [styles.numeric]: numeric,\n })}\n >\n {renderControl({\n disabled,\n error,\n errorId,\n helperTextId,\n id: inputId,\n labelId,\n required,\n ...inputProps,\n })}\n </div>\n {numeric && (\n <div className={styles.numericText} data-testid=\"numeric-text\">\n <Text size=\"paragraphSmall\">{numericText}</Text>\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={cx(styles[\"control-wrapper\"], wrapperClassNames, {\n [styles[\"control-wrapper-full-width\"]]: fullWidth,\n })}\n ref={ref}\n >\n {label ? (\n <div className={styles[\"control-wrapper__label-wrapper\"]}>\n <div className={styles[\"control-wrapper__label-container\"]}>\n <div className={labelClassNames}>\n <label\n id={labelId}\n htmlFor={String(inputId)}\n className={styles[\"control-wrapper__label-wrapper\"]}\n data-testid=\"control-wrapper-label\"\n >\n {label}\n </label>\n {tooltip && (\n <>\n <Spacer orientation=\"horizontal\" size=\"small\" />\n <Tooltip\n id={tooltipId}\n onClick={(e) => {\n // This way the input won't focus every time the tooltip is clicked\n e.preventDefault();\n }}\n icon={true}\n content={tooltip}\n />\n </>\n )}\n {!required && optionalLabelText && (\n <span className={styles[\"control-wrapper__optional-label\"]}>\n {optionalLabelText}\n </span>\n )}\n </div>\n {maxLengthText && maxLength > 0 && maxLengthAbove ? (\n <div\n className={styles[\"control-wrapper__count-above\"]}\n data-testid=\"max-length-text-above\"\n >\n {countString}\n </div>\n ) : null}\n {helperButtonLabel && helperButtonPosition === \"top\" && (\n <Button\n data-testid=\"top-helper-button\"\n variant=\"link\"\n onClick={helperButtonClick}\n className={styles[\"control-wrapper__helper-button\"]}\n >\n {helperButtonLabel}\n </Button>\n )}\n </div>\n {inputWrapper}\n </div>\n ) : (\n <>\n <label\n id={labelId}\n htmlFor={String(inputId)}\n className=\"screen-reader-only\"\n data-testid=\"control-wrapper-label\"\n >\n {inputProps.placeholder}\n </label>\n {inputWrapper}\n </>\n )}\n {helperRow}\n </div>\n );\n}\n\nfunction safeToLocaleString(\n numberOrString: number | string,\n options = {}\n): string | number {\n return numberOrString && numberOrString.toLocaleString(undefined, options);\n}\n","import React from \"react\";\n\nimport { ProfilePic } from \"../ProfilePic\";\n\nimport styles from \"./TextArea.scss\";\n\ninterface UserProfile {\n jobTitle: string;\n}\n\ninterface TextAreaMentionSuggestionProps {\n id: string;\n name: React.ReactNode;\n userProfile: UserProfile;\n}\n\nexport function TextAreaMentionSuggestion({\n id,\n name,\n userProfile,\n}: TextAreaMentionSuggestionProps) {\n return (\n <React.Fragment key={id}>\n <ProfilePic\n size=\"medium\"\n user={userProfile}\n className={styles[\"suggestion-pic\"]}\n />\n <div\n data-testid=\"mention-suggestion\"\n className={styles[\"suggestion-info\"]}\n >\n {name}\n <span className={styles[\"suggestion-info__title\"]}>\n {userProfile.jobTitle}\n </span>\n </div>\n </React.Fragment>\n );\n}\n","import React from \"react\";\nimport { Mention, MentionsInput } from \"react-mentions\";\n\nimport cx from \"classnames\";\n\nimport { coalesce } from \"@kazoohr/helpers\";\n\nimport { ControlWrapper } from \"../ControlWrapper/ControlWrapper\";\n\nimport styles from \"./TextArea.scss\";\nimport { TextAreaMentionSuggestion } from \"./TextAreaMentionSuggestion\";\n\nconst MAX_MENTION_SEARCH_LENGTH = 20;\n\nexport interface TextAreaProps {\n /** Identifier for this textarea */\n id: string | number;\n /** CSS class name to apply to the text area */\n className?: string;\n /** Whether or not textarea is disabled */\n disabled?: boolean;\n /** An error message and state */\n error?: string | null;\n /** Text that provides user information regarding this textarea (optional) */\n helperText?: string;\n /** Text that displays above text area (optional) */\n label?: React.ReactNode;\n /** Maximum number of characters allowed */\n maxLength?: number;\n /** Minimum number of rows displayed */\n minRows?: number;\n /** Function to return suggestions after the user starts a mention */\n onMention?: (search: string, callback: (results: any) => void) => void;\n /** Function called as user types (must update state or user can't type) */\n onChange: (value: string) => void;\n /** Text that shows prior to user typing (optional) */\n placeholder?: string;\n /** Whether or not textarea is required */\n required?: boolean;\n /** Text that will be displayed next to the label when `required` is false */\n optionalLabelText?: string;\n /** Render the text area as a speech bubble (no rounded corner on the top left) */\n speechBubble?: boolean;\n /** Tab index of the element */\n tabIndex?: number;\n /** Whether to render the text area full width */\n fullWidth?: boolean;\n /** Text value of the textbox */\n value?: string;\n /** Text that shows prior to user typing with mentions enabled (optional) */\n mentionsPlaceholder?: string;\n /** Captures the ref of the text area element */\n inputRef?: React.RefObject<HTMLTextAreaElement>;\n /** Whether to display max length above the textarea */\n maxLengthAbove?: boolean;\n /** If provided, we will render this tooltip when hovering */\n tooltip?: React.ReactNode;\n /** If true, the element will autofocus when rendered */\n autoFocus?: boolean;\n /** The form element name of the component */\n name?: string;\n /** Test ID attribute on the text box */\n [\"data-testid\"]?: string;\n}\n\n/**\n * A TextArea component that grows with the user's input.\n *\n * Passing a function as `onMention` enables this component to support typeahead mentions using `react-mentions`. When the user types an @ symbol, `onMention` will be invoked with the text following the @ symbol.\n *\n * You can use the string in `input` to fetch user suggestions from an API, and then call `callback` with an array of matching suggestions.\n *\n * Suggestions should be provided as `UserProfile` objects. See [`UserDisplay`](index.html?selectedKind=UserDisplay) for the shape of these objects.\n */\nexport function TextArea({\n className,\n disabled,\n error = \"\",\n helperText = \"\",\n id,\n label,\n maxLength,\n minRows,\n onMention,\n onChange,\n placeholder,\n required,\n optionalLabelText,\n speechBubble = false,\n tabIndex,\n fullWidth = false,\n value = \"\",\n mentionsPlaceholder = \"Mention others with @name\",\n inputRef,\n maxLengthAbove = false,\n tooltip,\n ...textAreaProps\n}: TextAreaProps) {\n const mentionLinkRegex = RegExp(\n '<a\\\\s+href=\"/users/([0-9a-f]+)\">@([^<]+)</a>',\n \"gi\"\n );\n\n const mentionsFormatted = (comment: string) =>\n comment.replace(mentionLinkRegex, \"@[$2]($1)\");\n const formattedValue = mentionsFormatted(value);\n\n const renderControl = () => {\n const classes = cx(\"textarea\", { error: Boolean(error), speechBubble });\n const defaultMentionsPlaceholder = onMention ? mentionsPlaceholder : \"\";\n return (\n <MentionsInput\n className={classes}\n classNames={styles}\n id={id.toString()}\n value={formattedValue}\n placeholder={placeholder || defaultMentionsPlaceholder}\n maxLength={maxLength}\n tabIndex={tabIndex}\n rows={minRows}\n disabled={disabled || false}\n onChange={(e) => onChange(e.target.value)}\n allowSpaceInQuery={true}\n inputRef={inputRef}\n {...textAreaProps}\n >\n {onMention ? (\n <Mention\n trigger=\"@\"\n className={styles[\"suggestion\"]}\n renderSuggestion={renderSuggestion}\n displayTransform={(_id: string, display: string) => `@${display}`}\n data={handleOnMention(onMention)}\n />\n ) : (\n <Mention trigger=\"@\" data={[]} />\n )}\n </MentionsInput>\n );\n };\n\n const controlWrapperProps = {\n value,\n label,\n inputId: id,\n disabled,\n helperText,\n required,\n optionalLabelText,\n fullWidth,\n error,\n charactersRemaining: value ? value.length : 0,\n maxLength,\n renderControl,\n maxLengthAbove,\n tooltip,\n };\n return (\n <div\n data-testid=\"textarea-container\"\n className={cx(styles[\"container\"], className)}\n >\n <ControlWrapper {...controlWrapperProps} />\n </div>\n );\n}\n\ntype OnMentionFn = (search: string, callback: (results: any) => void) => void;\n\nexport function handleOnMention(onMention: OnMentionFn) {\n return (search: string, callback: Parameters<OnMentionFn>[1]) => {\n if (search.length > MAX_MENTION_SEARCH_LENGTH) {\n callback([]);\n return; // Ensure callback is called with empty array to prevent execution\n }\n onMention(search, (results) => {\n callback(mapUserProfileToMention(results));\n });\n };\n}\n\nexport interface UncontrolledTextAreaProps extends TextAreaProps {\n /** Interval for debouncing the onChange event */\n debounceInterval?: number;\n}\n\n/**\n * Uncontrolled version of the TextArea component with debouncing\n */\nexport function UncontrolledTextArea(props: UncontrolledTextAreaProps) {\n const { debounceInterval = 100, value, onChange, ...textAreaProps } = props;\n const [internalValue, setInternalValue] = React.useState(props.value);\n const onChangeRef = React.useRef(onChange);\n\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n // istanbul ignore else - noop\n if (internalValue !== value) {\n onChangeRef.current(coalesce(internalValue, \"\"));\n }\n }, debounceInterval);\n\n return function cleanup() {\n clearTimeout(timeout);\n };\n }, [internalValue, debounceInterval]);\n\n return (\n <TextArea\n {...textAreaProps}\n value={internalValue}\n onChange={setInternalValue}\n />\n );\n}\n\n/**\n * Maps user profile array to mention format\n */\nfunction mapUserProfileToMention(userProfileArray: any[]) {\n return userProfileArray.map((item) => ({ ...item, display: item.name }));\n}\n\n/**\n * Renders the suggestion for mentions\n */\nexport function renderSuggestion(\n entry: any,\n search: string,\n highlightedDisplay: React.ReactNode\n) {\n return (\n <TextAreaMentionSuggestion\n id={entry.id}\n name={highlightedDisplay}\n userProfile={entry}\n />\n );\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { ProfilePic } from \"../ProfilePic\";\n\nimport styles from \"./Checkbox.scss\";\n\nexport interface CheckboxProps {\n /**\n * Checked value for checkbox input\n */\n checked?: boolean;\n /**\n * Whether the checkbox is in an error state\n */\n hasError?: boolean;\n /**\n * Additional CSS class names to apply to the checkbox\n */\n className?: string;\n /**\n * Disables the checkbox from being changed\n */\n disabled?: boolean;\n /**\n * Extra text below checkbox label\n */\n helperText?: React.ReactNode;\n /**\n * Checkbox ID attribute (also links input to label)\n */\n id: string | number;\n /**\n * Checkbox Label Text\n */\n label?: React.ReactNode;\n /**\n * Checkbox name attribute\n */\n name?: string;\n /**\n * Value of the checkbox input (for form submission)\n */\n value?: string;\n /**\n * Function called when checkbox is clicked\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Accessible label for the checkbox\n */\n ariaLabel?: string;\n /**\n * Determines font size of the label\n */\n size?: \"extra-small\" | \"small\" | \"regular\";\n /**\n * Whether the checkbox is in the indeterminate state\n */\n indeterminate?: boolean;\n /**\n * Function called when checkbox is clicked while indeterminate is true\n */\n onIndeterminateChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * User object for the checkbox, if applicable\n */\n user?: {\n avatar?: string;\n id?: string;\n initials?: string;\n jobTitle?: string;\n name?: string | React.ReactNode;\n };\n}\n\nexport function Checkbox({\n checked,\n className,\n disabled,\n helperText,\n id,\n label,\n name,\n onChange,\n onIndeterminateChange,\n ariaLabel,\n size = \"regular\",\n indeterminate = false,\n user,\n hasError,\n ...checkboxProps\n}: CheckboxProps): JSX.Element {\n const classNames = cx(\n styles.wrapper,\n {\n [styles.wrapperDisabledState]: disabled,\n },\n {\n [styles[\"wrapper--xsmall\"]]: size === \"extra-small\",\n [styles[\"wrapper--small\"]]: size === \"small\",\n },\n className\n );\n\n const inputClassNames = cx(styles.input, {\n [styles[\"checkbox-indeterminate\"]]: indeterminate,\n });\n\n const spanClassNames = cx(styles[\"checkbox\"], {\n [styles[\"error\"]]: hasError,\n });\n\n const handleChange = indeterminate\n ? onIndeterminateChange || onChange\n : onChange;\n\n return (\n <div data-testid={user ? \"user-checkbox\" : \"checkbox\"}>\n <label className={classNames} htmlFor={String(id)}>\n <input\n type=\"checkbox\"\n aria-label={ariaLabel}\n className={inputClassNames}\n checked={checked}\n disabled={disabled}\n id={String(id)}\n name={name}\n data-indeterminate={indeterminate}\n onChange={handleChange}\n {...checkboxProps}\n />\n <span className={spanClassNames} />\n {user && <ProfilePic user={user} />}\n <div className={styles[\"label-container\"]}>\n <span className={styles.label}>{label}</span>\n {(helperText || user?.jobTitle) && (\n <div className={styles[\"helper-row\"]}>\n {user?.jobTitle && (\n <div className={styles[\"helper-text\"]}>{user.jobTitle}</div>\n )}\n {helperText && (\n <div className={styles[\"helper-text\"]}>{helperText}</div>\n )}\n </div>\n )}\n </div>\n </label>\n </div>\n );\n}\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap');\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' ||\n typeof value.splice == 'function' || isBuffer(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (nonEnumShadows || isPrototype(value)) {\n return !nativeKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEmpty;\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport styles from \"./Divider.scss\";\n\nexport const COLOR_MAP = {\n \"nav-gray\": styles[\"divider-nav-gray\"],\n \"gray-1\": styles[\"divider-gray-1\"],\n \"gray-2\": styles[\"divider-gray-2\"],\n \"gray-3\": styles[\"divider-gray-3\"],\n \"gray-4\": styles[\"divider-gray-4\"],\n \"gray-5\": styles[\"divider-gray-5\"],\n \"gray-6\": styles[\"divider-gray-6\"],\n};\n\nexport interface DividerProps {\n className?: string;\n style?: React.CSSProperties;\n color?: keyof typeof COLOR_MAP;\n}\n\n/**\n * A 1px line that will expand in any direction.\n */\nexport function Divider({\n className,\n style,\n color = \"gray-5\",\n}: {\n className?: string;\n style?: React.CSSProperties;\n color?: keyof typeof COLOR_MAP;\n}) {\n const classNames = cx(COLOR_MAP[color], className);\n\n return <div className={classNames} style={style} />;\n}\n","import { asyncComponent } from \"../../helpers/asyncComponent\";\n\n/**\n * Asynchronously loads the EmojiPicker component. We do this async so we don't\n * have to load all of the emoji data before the user needs it. There are a LOT\n * of emojis.\n */\nexport const EmojiPickerAsync = asyncComponent({\n module: () => import(\"./EmojiPicker\"),\n component: (module) => module[\"EmojiPicker\"],\n});\n","import { asyncComponent } from \"../../helpers/asyncComponent\";\n\n/**\n * Asynchronously loads the EmojiPicker component. We do this async so we don't\n * have to load all of the emoji data before the user needs it. There are a LOT\n * of emojis.\n */\nexport const EmojiDisplayAsync = asyncComponent({\n module: () => import(\"./EmojiDisplay\"),\n component: (module) => module[\"EmojiDisplay\"],\n});\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { Divider } from \"../Divider\";\nimport { IconDictionary } from \"../Icon\";\nimport { ProfilePic } from \"../ProfilePic\";\nimport { Text } from \"../Text\";\n\nimport styles from \"./EmployeeList.scss\";\n\nexport interface Employee {\n id?: string;\n image30?: string;\n image50?: string;\n image70?: string;\n initials?: string;\n title?: string;\n fullName?: string;\n name?: string;\n jobTitle?: string;\n profileUrl?: string;\n featuredGroup?: string;\n}\n\ninterface EmployeeListProps {\n /** Array of user objects */\n employees: Employee[];\n /** Should list display employee titles */\n showTitles?: boolean;\n /** Should list display secondary text */\n showSecondaryText?: boolean;\n /** Should display a divider at the end of each row */\n showDivider?: boolean;\n /** Does the list turn into a scrollable at 248px? */\n heightLimited?: boolean;\n /** Opens user profile in a new tab */\n openProfileInNewTab?: boolean;\n /** Disables the profile link functionality */\n disableProfileLink?: boolean;\n /** If provided all user icons will render as this icon instead of the profile pictures or initials */\n profilePicIconOverride?: IconDictionary;\n /** Component to be rendered at the end of the employee list */\n footerComponent?: React.ReactNode;\n}\n\ninterface EmployeeInfoWrapperProps {\n children: React.ReactNode;\n employee: Employee;\n}\n\n/**\n * A list of employees that can display various employee information and attributes.\n *\n * @example\n * ```tsx\n * <EmployeeList\n * employees={employees}\n * showTitles={true}\n * showSecondaryText={true}\n * />\n * ```\n */\nexport function EmployeeList({\n employees,\n showTitles = false,\n showSecondaryText = false,\n showDivider = false,\n heightLimited = false,\n openProfileInNewTab = false,\n disableProfileLink = false,\n profilePicIconOverride,\n footerComponent = null,\n}: EmployeeListProps): JSX.Element {\n // scrollable if resulting content is taller than 248 px\n const listContainerStyle = cx({\n [styles[\"height-limited\"]]: heightLimited,\n });\n\n function EmployeeInfoWrapper({\n children,\n employee,\n }: EmployeeInfoWrapperProps): JSX.Element {\n return disableProfileLink ? (\n <div\n className={cx(\n styles[\"text-container\"],\n styles[\"text-container-disabled\"]\n )}\n style={{ cursor: \"default\" }}\n >\n {children}\n </div>\n ) : (\n <a\n className={styles[\"text-container\"]}\n href={employee.profileUrl}\n target={openProfileInNewTab ? \"_blank\" : \"_self\"}\n rel=\"noopener noreferrer\"\n >\n {children}\n </a>\n );\n }\n\n return (\n <div data-testid=\"employee-list-container\" className={listContainerStyle}>\n <ul className={styles.employees} data-testid=\"employee-list\">\n {employees.map((employee, i) => {\n return (\n <React.Fragment key={employee.id}>\n {showDivider && i > 0 && (\n <li>\n <Divider />\n </li>\n )}\n <li\n className={styles[\"list-item\"]}\n data-testid=\"employee-list-item\"\n >\n <div className={styles[\"employee-container\"]}>\n <ProfilePic\n user={employee}\n size=\"medium\"\n className={styles[\"list-profile-pic\"]}\n icon={profilePicIconOverride}\n />\n <EmployeeInfoWrapper employee={employee}>\n <Text size=\"paragraph\">\n {/* TODO KAZ-587 Clarify whether employee has name vs fullName\n * and adjust below line\n */}\n {employee.fullName || employee.name}\n </Text>\n {showTitles && (\n <Text size=\"small\" data-testid=\"employee-job-title\">\n {employee.jobTitle}\n </Text>\n )}\n {showSecondaryText && employee.featuredGroup && (\n <Text\n size=\"paragraphSmall\"\n data-testid=\"employee-secondary-text\"\n className={styles[\"secondary-text\"]}\n >\n {employee.featuredGroup}\n </Text>\n )}\n </EmployeeInfoWrapper>\n </div>\n </li>\n </React.Fragment>\n );\n })}\n {footerComponent}\n </ul>\n </div>\n );\n}\n","import { doNothing } from \"@kazoohr/helpers\";\n\nimport { onBrowser } from \"./onBrowser\";\n\nexport function useBlurHandlers(onBlur: () => void) {\n let closingTimeoutId: any;\n\n // istanbul ignore next - node short-circuit\n if (!onBrowser()) {\n return [doNothing, doNothing];\n }\n // We close the popover on the next tick by using setTimeout.\n // This is necessary because we need to first check if\n // another child of the element has received focus as\n // the blur event fires prior to the new focus event.\n // Source: https://reactjs.org/docs/accessibility.html#mouse-and-pointer-events\n const onBlurHandler = () => {\n closingTimeoutId = setTimeout(onBlur);\n };\n // If a child receives focus, do not close the popover.\n const onFocusHandler = () => {\n clearTimeout(closingTimeoutId);\n };\n\n return [onBlurHandler, onFocusHandler];\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.reactTextMask=t(require(\"react\")):e.reactTextMask=t(e.React)}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p=\"\",t(0)}([function(e,t,r){\"use strict\";function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function a(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function u(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.conformToMask=void 0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),f=r(3);Object.defineProperty(t,\"conformToMask\",{enumerable:!0,get:function(){return n(f).default}});var c=r(11),p=n(c),d=r(9),h=n(d),v=r(5),y=n(v),m=r(2),b=function(e){function t(){var e;i(this,t);for(var r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];var u=a(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(n)));return u.setRef=u.setRef.bind(u),u.onBlur=u.onBlur.bind(u),u.onChange=u.onChange.bind(u),u}return u(t,e),l(t,[{key:\"setRef\",value:function(e){this.inputElement=e}},{key:\"initTextMask\",value:function(){var e=this.props,t=this.props.value;this.textMaskInputElement=(0,y.default)(s({inputElement:this.inputElement},e)),this.textMaskInputElement.update(t)}},{key:\"componentDidMount\",value:function(){this.initTextMask()}},{key:\"componentDidUpdate\",value:function(e){var t=this.props,r=t.value,n=t.pipe,o=t.mask,i=t.guide,a=t.placeholderChar,u=t.showMask,s={guide:i,placeholderChar:a,showMask:u},l=\"function\"==typeof n&&\"function\"==typeof e.pipe?n.toString()!==e.pipe.toString():(0,m.isNil)(n)&&!(0,m.isNil)(e.pipe)||!(0,m.isNil)(n)&&(0,m.isNil)(e.pipe),f=o.toString()!==e.mask.toString(),c=Object.keys(s).some(function(t){return s[t]!==e[t]})||f||l,p=r!==this.inputElement.value;(p||c)&&this.initTextMask()}},{key:\"render\",value:function e(){var t=this.props,e=t.render,r=o(t,[\"render\"]);return delete r.mask,delete r.guide,delete r.pipe,delete r.placeholderChar,delete r.keepCharPositions,delete r.value,delete r.onBlur,delete r.onChange,delete r.showMask,e(this.setRef,s({onBlur:this.onBlur,onChange:this.onChange,defaultValue:this.props.value},r))}},{key:\"onChange\",value:function(e){this.textMaskInputElement.update(),\"function\"==typeof this.props.onChange&&this.props.onChange(e)}},{key:\"onBlur\",value:function(e){\"function\"==typeof this.props.onBlur&&this.props.onBlur(e)}}]),t}(p.default.PureComponent);t.default=b,b.propTypes={mask:h.default.oneOfType([h.default.array,h.default.func,h.default.bool,h.default.shape({mask:h.default.oneOfType([h.default.array,h.default.func]),pipe:h.default.func})]).isRequired,guide:h.default.bool,value:h.default.oneOfType([h.default.string,h.default.number]),pipe:h.default.func,placeholderChar:h.default.string,keepCharPositions:h.default.bool,showMask:h.default.bool},b.defaultProps={render:function(e,t){return p.default.createElement(\"input\",s({ref:e},t))}}},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.placeholderChar=\"_\",t.strFunction=\"function\"},function(e,t,r){\"use strict\";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.placeholderChar;if(!o(e))throw new Error(\"Text-mask:convertMaskToPlaceholder; The mask property must be an array.\");if(e.indexOf(t)!==-1)throw new Error(\"Placeholder character must not be used as part of the mask. Please specify a character that is not present in your mask as your placeholder character.\\n\\n\"+(\"The placeholder character that was received is: \"+JSON.stringify(t)+\"\\n\\n\")+(\"The mask that was received is: \"+JSON.stringify(e)));return e.map(function(e){return e instanceof RegExp?t:e}).join(\"\")}function o(e){return Array.isArray&&Array.isArray(e)||e instanceof Array}function i(e){return\"string\"==typeof e||e instanceof String}function a(e){return\"number\"==typeof e&&void 0===e.length&&!isNaN(e)}function u(e){return\"undefined\"==typeof e||null===e}function s(e){for(var t=[],r=void 0;r=e.indexOf(c),r!==-1;)t.push(r),e.splice(r,1);return{maskWithoutCaretTraps:e,indexes:t}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.convertMaskToPlaceholder=n,t.isArray=o,t.isString=i,t.isNumber=a,t.isNil=u,t.processCaretTraps=s;var l=r(1),f=[],c=\"[]\"},function(e,t,r){\"use strict\";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(0,i.isArray)(t)){if((\"undefined\"==typeof t?\"undefined\":o(t))!==a.strFunction)throw new Error(\"Text-mask:conformToMask; The mask property must be an array.\");t=t(e,r),t=(0,i.processCaretTraps)(t).maskWithoutCaretTraps}var n=r.guide,l=void 0===n||n,f=r.previousConformedValue,c=void 0===f?s:f,p=r.placeholderChar,d=void 0===p?a.placeholderChar:p,h=r.placeholder,v=void 0===h?(0,i.convertMaskToPlaceholder)(t,d):h,y=r.currentCaretPosition,m=r.keepCharPositions,b=l===!1&&void 0!==c,g=e.length,k=c.length,C=v.length,O=t.length,T=g-k,P=T>0,x=y+(P?-T:0),w=x+Math.abs(T);if(m===!0&&!P){for(var S=s,_=x;_<w;_++)v[_]===d&&(S+=d);e=e.slice(0,x)+S+e.slice(x,g)}for(var M=e.split(s).map(function(e,t){return{char:e,isNew:t>=x&&t<w}}),j=g-1;j>=0;j--){var E=M[j].char;if(E!==d){var R=j>=x&&k===O;E===v[R?j-T:j]&&M.splice(j,1)}}var V=s,N=!1;e:for(var A=0;A<C;A++){var B=v[A];if(B===d){if(M.length>0)for(;M.length>0;){var I=M.shift(),F=I.char,q=I.isNew;if(F===d&&b!==!0){V+=d;continue e}if(t[A].test(F)){if(m===!0&&q!==!1&&c!==s&&l!==!1&&P){for(var D=M.length,L=null,W=0;W<D;W++){var J=M[W];if(J.char!==d&&J.isNew===!1)break;if(J.char===d){L=W;break}}null!==L?(V+=F,M.splice(L,1)):A--}else V+=F;continue e}N=!0}b===!1&&(V+=v.substr(A,C));break}V+=B}if(b&&P===!1){for(var U=null,H=0;H<V.length;H++)v[H]===d&&(U=H);V=null!==U?V.substr(0,U+1):s}return{conformedValue:V,meta:{someCharsRejected:N}}}Object.defineProperty(t,\"__esModule\",{value:!0});var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.default=n;var i=r(2),a=r(1),u=[],s=\"\"},function(e,t){\"use strict\";function r(e){var t=e.previousConformedValue,r=void 0===t?o:t,i=e.previousPlaceholder,a=void 0===i?o:i,u=e.currentCaretPosition,s=void 0===u?0:u,l=e.conformedValue,f=e.rawValue,c=e.placeholderChar,p=e.placeholder,d=e.indexesOfPipedChars,h=void 0===d?n:d,v=e.caretTrapIndexes,y=void 0===v?n:v;if(0===s||!f.length)return 0;var m=f.length,b=r.length,g=p.length,k=l.length,C=m-b,O=C>0,T=0===b,P=C>1&&!O&&!T;if(P)return s;var x=O&&(r===l||l===p),w=0,S=void 0,_=void 0;if(x)w=s-C;else{var M=l.toLowerCase(),j=f.toLowerCase(),E=j.substr(0,s).split(o),R=E.filter(function(e){return M.indexOf(e)!==-1});_=R[R.length-1];var V=a.substr(0,R.length).split(o).filter(function(e){return e!==c}).length,N=p.substr(0,R.length).split(o).filter(function(e){return e!==c}).length,A=N!==V,B=void 0!==a[R.length-1]&&void 0!==p[R.length-2]&&a[R.length-1]!==c&&a[R.length-1]!==p[R.length-1]&&a[R.length-1]===p[R.length-2];!O&&(A||B)&&V>0&&p.indexOf(_)>-1&&void 0!==f[s]&&(S=!0,_=f[s]);for(var I=h.map(function(e){return M[e]}),F=I.filter(function(e){return e===_}).length,q=R.filter(function(e){return e===_}).length,D=p.substr(0,p.indexOf(c)).split(o).filter(function(e,t){return e===_&&f[t]!==e}).length,L=D+q+F+(S?1:0),W=0,J=0;J<k;J++){var U=M[J];if(w=J+1,U===_&&W++,W>=L)break}}if(O){for(var H=w,Y=w;Y<=g;Y++)if(p[Y]===c&&(H=Y),p[Y]===c||y.indexOf(Y)!==-1||Y===g)return H}else if(S){for(var z=w-1;z>=0;z--)if(l[z]===_||y.indexOf(z)!==-1||0===z)return z}else for(var G=w;G>=0;G--)if(p[G-1]===c||y.indexOf(G)!==-1||0===G)return G}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=r;var n=[],o=\"\"},function(e,t,r){\"use strict\";function n(e){return e&&e.__esModule?e:{default:e}}function o(e){var t={previousConformedValue:void 0,previousPlaceholder:void 0};return{state:t,update:function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=n.inputElement,l=n.mask,c=n.guide,y=n.pipe,b=n.placeholderChar,g=void 0===b?h.placeholderChar:b,k=n.keepCharPositions,C=void 0!==k&&k,O=n.showMask,T=void 0!==O&&O;if(\"undefined\"==typeof r&&(r=o.value),r!==t.previousConformedValue){(\"undefined\"==typeof l?\"undefined\":s(l))===m&&void 0!==l.pipe&&void 0!==l.mask&&(y=l.pipe,l=l.mask);var P=void 0,x=void 0;if(l instanceof Array&&(P=(0,d.convertMaskToPlaceholder)(l,g)),l!==!1){var w=a(r),S=o.selectionEnd,_=t.previousConformedValue,M=t.previousPlaceholder,j=void 0;if((\"undefined\"==typeof l?\"undefined\":s(l))===h.strFunction){if(x=l(w,{currentCaretPosition:S,previousConformedValue:_,placeholderChar:g}),x===!1)return;var E=(0,d.processCaretTraps)(x),R=E.maskWithoutCaretTraps,V=E.indexes;x=R,j=V,P=(0,d.convertMaskToPlaceholder)(x,g)}else x=l;var N={previousConformedValue:_,guide:c,placeholderChar:g,pipe:y,placeholder:P,currentCaretPosition:S,keepCharPositions:C},A=(0,p.default)(w,x,N),B=A.conformedValue,I=(\"undefined\"==typeof y?\"undefined\":s(y))===h.strFunction,F={};I&&(F=y(B,u({rawValue:w},N)),F===!1?F={value:_,rejected:!0}:(0,d.isString)(F)&&(F={value:F}));var q=I?F.value:B,D=(0,f.default)({previousConformedValue:_,previousPlaceholder:M,conformedValue:q,placeholder:P,rawValue:w,currentCaretPosition:S,placeholderChar:g,indexesOfPipedChars:F.indexesOfPipedChars,caretTrapIndexes:j}),L=q===P&&0===D,W=T?P:v,J=L?W:q;t.previousConformedValue=J,t.previousPlaceholder=P,o.value!==J&&(o.value=J,i(o,D))}}}}}function i(e,t){document.activeElement===e&&(b?g(function(){return e.setSelectionRange(t,t,y)},0):e.setSelectionRange(t,t,y))}function a(e){if((0,d.isString)(e))return e;if((0,d.isNumber)(e))return String(e);if(void 0===e||null===e)return v;throw new Error(\"The 'value' provided to Text Mask needs to be a string or a number. The value received was:\\n\\n \"+JSON.stringify(e))}Object.defineProperty(t,\"__esModule\",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.default=o;var l=r(4),f=n(l),c=r(3),p=n(c),d=r(2),h=r(1),v=\"\",y=\"none\",m=\"object\",b=\"undefined\"!=typeof navigator&&/Android/i.test(navigator.userAgent),g=\"undefined\"!=typeof requestAnimationFrame?requestAnimationFrame:setTimeout},function(e,t){\"use strict\";function r(e){return function(){return e}}var n=function(){};n.thatReturns=r,n.thatReturnsFalse=r(!1),n.thatReturnsTrue=r(!0),n.thatReturnsNull=r(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(e){return e},e.exports=n},function(e,t,r){\"use strict\";function n(e,t,r,n,i,a,u,s){if(o(t),!e){var l;if(void 0===t)l=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var f=[r,n,i,a,u,s],c=0;l=new Error(t.replace(/%s/g,function(){return f[c++]})),l.name=\"Invariant Violation\"}throw l.framesToPop=1,l}}var o=function(e){};e.exports=n},function(e,t,r){\"use strict\";var n=r(6),o=r(7),i=r(10);e.exports=function(){function e(e,t,r,n,a,u){u!==i&&o(!1,\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\")}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return r.checkPropTypes=n,r.PropTypes=r,r}},function(e,t,r){\"use strict\";\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},e.exports=r(8)()},function(e,t){\"use strict\";var r=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";e.exports=r},function(t,r){t.exports=e}])});","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n )\n\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React from \"react\";\n\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { Button } from \"../Button\";\nimport { Popover } from \"../Popover\";\n\nimport styles from \"./Autocomplete.scss\";\n\nconst IMPERATIVE_API = [\n \"blur\",\n \"checkValidity\",\n \"click\",\n \"focus\",\n \"select\",\n \"setCustomValidity\",\n \"setSelectionRange\",\n \"setRangeText\",\n];\n\nfunction getScrollOffset() {\n return {\n x: window.scrollX,\n y: window.scrollY,\n };\n}\n\n/**\n * This is a legacy-style React component that we copied into this codebase from\n * a now-archived NPM package. The functionality here works well, but we had to\n * copy it and modify it to work with newer React versions.\n *\n * We thought that since people like Ryan Florence were maintaining it, it would\n * last a while, but alas, a few months after we started using it, it was archived!\n *\n * https://github.com/reactjs/react-autocomplete\n */\nexport default class Autocomplete extends React.Component {\n static displayName = \"Autocomplete\";\n static propTypes = {\n /**\n * If you want an index to be highlighted by default, pass it here.\n * Not super useful in the wild, but useful for testing.\n */\n defaultHighlightedIndex: PropTypes.number,\n /**\n * The items to display in the dropdown menu\n */\n items: PropTypes.array.isRequired,\n /**\n * The value to display in the input field\n */\n value: PropTypes.any,\n /**\n * Arguments: `event: Event, value: String`\n *\n * Invoked every time the user changes the input's value.\n */\n onChange: PropTypes.func,\n /**\n * Arguments: `value: String, item: Any`\n *\n * Invoked when the user selects an item from the dropdown menu.\n */\n onSelect: PropTypes.func,\n /**\n * Arguments: `item: Any, value: String`\n *\n * Invoked for each entry in `items` and its return value is used to\n * determine whether or not it should be displayed in the dropdown menu.\n * By default all items are always rendered.\n */\n shouldItemRender: PropTypes.func,\n /**\n * Arguments: `item: Any`\n *\n * Invoked when attempting to select an item. The return value is used to\n * determine whether the item should be selectable or not.\n * By default all items are selectable.\n */\n isItemSelectable: PropTypes.func,\n /**\n * Arguments: `itemA: Any, itemB: Any, value: String`\n *\n * The function which is used to sort `items` before display.\n */\n sortItems: PropTypes.func,\n /**\n * Arguments: `item: Any`\n *\n * Used to read the display value from each entry in `items`.\n */\n getItemValue: PropTypes.func.isRequired,\n /**\n * Arguments: `item: Any, isHighlighted: Boolean, styles: Object`\n *\n * Invoked for each entry in `items` that also passes `shouldItemRender` to\n * generate the render tree for each item in the dropdown menu. `styles` is\n * an optional set of styles that can be applied to improve the look/feel\n * of the items in the dropdown menu.\n */\n renderItem: PropTypes.func.isRequired,\n /**\n * Arguments: `items: Array<Any>, value: String, styles: Object`\n *\n * Invoked to generate the render tree for the dropdown menu. Ensure the\n * returned tree includes every entry in `items` or else the highlight order\n * and keyboard navigation logic will break. `styles` will contain\n * { top, left, minWidth } which are the coordinates of the top-left corner\n * and the width of the dropdown menu.\n */\n renderMenu: PropTypes.func,\n /**\n * Styles that are applied to the dropdown menu in the default `renderMenu`\n * implementation. If you override `renderMenu` and you want to use\n * `menuStyle` you must manually apply them (`this.props.menuStyle`).\n */\n menuStyle: PropTypes.object,\n /**\n * Arguments: `props: Object`\n *\n * Invoked to generate the input element. The `props` argument is the result\n * of merging `props.inputProps` with a selection of props that are required\n * both for functionality and accessibility. At the very least you need to\n * apply `props.ref` and all `props.on<event>` event handlers. Failing to do\n * this will cause `Autocomplete` to behave unexpectedly.\n */\n renderInput: PropTypes.func,\n /**\n * Props passed to `props.renderInput`. By default these props will be\n * applied to the `<input />` element rendered by `Autocomplete`, unless you\n * have specified a custom value for `props.renderInput`. Any properties\n * supported by `HTMLInputElement` can be specified, apart from the\n * following which are set by `Autocomplete`: value, autoComplete, role,\n * aria-autocomplete. `inputProps` is commonly used for (but not limited to)\n * placeholder, event handlers (onFocus, onBlur, etc.), autoFocus, etc..\n */\n inputProps: PropTypes.object,\n /**\n * Props that are applied to the element which wraps the `<input />` and\n * dropdown menu elements rendered by `Autocomplete`.\n */\n wrapperProps: PropTypes.object,\n /**\n * This is a shorthand for `wrapperProps={{ style: <your styles> }}`.\n * Note that `wrapperStyle` is applied before `wrapperProps`, so the latter\n * will win if it contains a `style` entry.\n */\n wrapperStyle: PropTypes.object,\n /**\n * Whether or not to automatically highlight the top match in the dropdown\n * menu.\n */\n autoHighlight: PropTypes.bool,\n /**\n * Whether or not to automatically select the highlighted item when the\n * `<input>` loses focus.\n */\n selectOnBlur: PropTypes.bool,\n /**\n * Arguments: `isOpen: Boolean`\n *\n * Invoked every time the dropdown menu's visibility changes (i.e. every\n * time it is displayed/hidden).\n */\n onMenuVisibilityChange: PropTypes.func,\n /**\n * Used to override the internal logic which displays/hides the dropdown\n * menu. This is useful if you want to force a certain state based on your\n * UX/business logic. Use it together with `onMenuVisibilityChange` for\n * fine-grained control over the dropdown menu dynamics.\n */\n open: PropTypes.bool,\n /**\n * To skip the onClick and onEnter handler in a list element.\n * Sometimes we want to handle this event outside this component.\n * If you skip them, they won't be added to every list element.\n */\n skipEventHanders: PropTypes.bool,\n keepInputAfterSelection: PropTypes.bool,\n maxSelections: PropTypes.number,\n /**\n * It will position the `renderMenu` prop the best way possible.\n * At the end, it uses Popper.JS to best place the popped-element\n * */\n popperEnabled: PropTypes.bool,\n /**\n * Autocomplete used for <MultiSelect /> where a caret-button is used.\n * It works together with `actionButtonEnabled`\n * */\n isMultiSelect: PropTypes.bool,\n /**\n * The id of the wrapped input: <input id={inputId} ... />\n * */\n inputId: PropTypes.string,\n /**\n * Whether or not the input caret will be displayed\n */\n hideInputCaret: PropTypes.bool,\n /**\n * Label for the chevron button when it is open (default value is Open)\n */\n buttonOpenLabel: PropTypes.string,\n /**\n * Label for the chevron button when it is closed (default value is Closed)\n */\n buttonClosedLabel: PropTypes.string,\n };\n\n static defaultProps = {\n value: \"\",\n wrapperProps: {},\n wrapperStyle: {\n display: \"inline-block\",\n },\n inputProps: {},\n renderInput({\n // This is required because regular HTML elements can only receive lowercased custom attributes\n // Source:\n // https://react.dev/reference/react-dom/components/common#common-props\n // https://legacy.reactjs.org/docs/dom-elements.html\n // https://legacy.reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html\n highlightedIndex, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...props\n }) {\n return <input {...props} />;\n },\n onChange() {},\n onSelect() {},\n isItemSelectable() {\n return true;\n },\n renderMenu(items, value, style) {\n return (\n <div\n style={{ ...style, ...this.menuStyle }}\n data-testid=\"autocomplete-menu\"\n >\n {items}\n </div>\n );\n },\n menuStyle: {\n borderRadius: \"3px\",\n boxShadow: \"0 2px 12px rgba(0, 0, 0, 0.1)\",\n background: \"rgba(255, 255, 255, 0.9)\",\n padding: \"2px 0\",\n fontSize: \"90%\",\n position: \"fixed\",\n overflow: \"auto\",\n maxHeight: \"50%\", // TODO: don't cheat, let it flow to the bottom\n },\n autoHighlight: true,\n selectOnBlur: false,\n onMenuVisibilityChange() {},\n keepInputAfterSelection: false,\n skipEventHanders: false,\n popperEnabled: false,\n hideInputCaret: false,\n buttonOpenLabel: \"Open\",\n buttonClosedLabel: \"Closed\",\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isOpen: false,\n highlightedIndex: props.defaultHighlightedIndex || null,\n };\n this.ensureHighlightedIndex = this.ensureHighlightedIndex.bind(this);\n this.exposeAPI = this.exposeAPI.bind(this);\n this.handleInputFocus = this.handleInputFocus.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.maybeHighlightClosestMatch =\n this.maybeHighlightClosestMatch.bind(this);\n this._refs = {};\n this._ignoreBlur = false;\n this._ignoreFocus = false;\n this._scrollOffset = null;\n this._scrollTimer = null;\n this._actionButtonEnabled = true;\n }\n\n componentWillUnmount() {\n clearTimeout(this._scrollTimer);\n this._scrollTimer = null;\n }\n\n componentDidMount() {\n if (this.isOpen()) {\n this.setMenuPositions();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (\n (this.state.isOpen && !prevState.isOpen) ||\n (\"open\" in this.props && this.props.open && !prevProps.open)\n ) {\n this.setMenuPositions();\n }\n\n if (prevState.isOpen !== this.state.isOpen) {\n this.props.onMenuVisibilityChange(this.state.isOpen);\n this.maybeHighlightClosestMatch();\n }\n\n this.ensureHighlightedIndex();\n }\n\n exposeAPI(el) {\n this._refs.input = el;\n IMPERATIVE_API.forEach(\n (ev) => (this[ev] = el && el[ev] && el[ev].bind(el))\n );\n }\n\n handleKeyDown(event) {\n if (Autocomplete.keyDownHandlers[event.key]) {\n return Autocomplete.keyDownHandlers[event.key].call(this, event);\n }\n\n if (!this.isOpen()) {\n this.setState({\n isOpen: true,\n });\n }\n this.maybeHighlightClosestMatch();\n this.ensureHighlightedIndex();\n }\n\n handleChange(event) {\n this.props.onChange(event, event.target.value);\n }\n\n // istanbul ignore next - JSDom doesn't offer us a way to test UI rendering/scrolling (it doesn't actually render anything)\n scrollNodeIntoView(nodeRef) {\n const menu = this._refs.menu;\n if (!menu) {\n return;\n }\n // If the node is below the visible area, scroll down enough to bring the entire node into view.\n const menuBottomEdge = menu.scrollTop + menu.clientHeight;\n if (nodeRef.offsetTop >= menuBottomEdge) {\n const nodeBottomEdge = nodeRef.offsetTop + nodeRef.offsetHeight;\n menu.scrollTop += nodeBottomEdge - menuBottomEdge;\n }\n // If the node is above the visible area, scroll up to it.\n if (nodeRef.offsetTop < menu.scrollTop) {\n menu.scrollTop = nodeRef.offsetTop;\n }\n }\n\n static keyDownHandlers = {\n ArrowDown(event) {\n event.preventDefault();\n const items = this.getFilteredItems();\n if (!items.length) {\n return;\n }\n const { highlightedIndex } = this.state;\n let index = highlightedIndex === null ? -1 : highlightedIndex;\n for (let i = 0; i < items.length; i++) {\n const p = (index + i + 1) % items.length;\n if (this.props.isItemSelectable(items[p])) {\n index = p;\n break;\n }\n }\n // istanbul ignore else - it's not clear how to reach the else condition, and it's difficult to cover. At worst it's a no-op\n if (index > -1 && index !== highlightedIndex) {\n const itemNode = this._refs[`item-${index}`];\n this.scrollNodeIntoView(itemNode);\n this.setState({\n highlightedIndex: index,\n isOpen: true,\n });\n }\n },\n\n ArrowUp(event) {\n event.preventDefault();\n const items = this.getFilteredItems();\n if (!items.length) {\n return;\n }\n const { highlightedIndex } = this.state;\n if (highlightedIndex === 0) {\n // clear suggestions if the user taps ArrowUp at the top of the list rather than wrapping (which makes it\n // impossible to \"escape\" the suggestion list with keyboard input)\n this.setState({ highlightedIndex: null });\n return;\n }\n let index = highlightedIndex === null ? items.length : highlightedIndex;\n for (let i = 0; i < items.length; i++) {\n const p = (index - (1 + i) + items.length) % items.length;\n if (this.props.isItemSelectable(items[p])) {\n index = p;\n break;\n }\n }\n // istanbul ignore else - it's not clear how to reach the else condition, and it's difficult to cover. At worst it's a no-op\n if (index !== items.length) {\n const itemNode = this._refs[`item-${index}`];\n this.scrollNodeIntoView(itemNode);\n this.setState({\n highlightedIndex: index,\n isOpen: true,\n });\n }\n },\n\n Enter(event) {\n // Key code 229 is used for selecting items from character selectors (Pinyin, Kana, etc)\n if (event.keyCode !== 13) {\n return;\n }\n // In case the user is currently hovering over the menu\n this._ignoreBlur = false;\n if (!this.isOpen()) {\n // menu is closed so there is no selection to accept -> do nothing\n return;\n } else if (this.state.highlightedIndex == null) {\n // input has focus but no menu item is selected + enter is hit -> close the menu, highlight whatever's in input\n this.setState(\n {\n isOpen: false,\n },\n () => {\n this._refs.input.select();\n }\n );\n } else {\n // text entered + menu item has been highlighted + enter is hit -> update value to that of selected menu item, close the menu\n event.preventDefault();\n const item = this.getFilteredItems()[this.state.highlightedIndex];\n const value = this.props.getItemValue(item);\n this.setState(\n {\n isOpen: this.props.keepInputAfterSelection,\n highlightedIndex: null,\n },\n () => {\n this._refs.input.focus();\n this._refs.input.setSelectionRange(value.length, value.length);\n this.props.onSelect(value, item);\n }\n );\n }\n },\n\n Escape() {\n // In case the user is currently hovering over the menu\n this._ignoreBlur = false;\n this.setState({\n highlightedIndex: null,\n isOpen: false,\n });\n },\n\n Tab() {\n // In case the user is currently hovering over the menu\n this._ignoreBlur = false;\n },\n };\n\n getFilteredItems() {\n let items = this.props.items;\n\n if (this.props.shouldItemRender) {\n items = items.filter((item) =>\n this.props.shouldItemRender(item, this.props.value)\n );\n }\n\n if (this.props.sortItems) {\n items.sort((a, b) => this.props.sortItems(a, b, this.props.value));\n }\n\n return items;\n }\n\n maybeHighlightClosestMatch() {\n const { highlightedIndex } = this.state;\n const { value, getItemValue } = this.props;\n const items = this.getFilteredItems();\n\n if (value === \"\") {\n return;\n }\n\n // Track the new index that needs to be selected based on highlighted results\n let newIndex = highlightedIndex;\n for (let i = 0; i < items.length; i++) {\n if (!this.props.isItemSelectable(items[i])) {\n continue;\n }\n const itemValue = getItemValue(items[i]);\n const itemValueDoesMatch =\n itemValue.toLowerCase().indexOf(value.toLowerCase()) === 0;\n if (itemValueDoesMatch) {\n newIndex = i;\n break;\n }\n }\n\n return this.setState({ highlightedIndex: newIndex });\n }\n\n ensureHighlightedIndex() {\n if (\n this.state.highlightedIndex &&\n this.state.highlightedIndex >= this.getFilteredItems().length\n ) {\n this.setState({ highlightedIndex: null });\n }\n }\n\n setMenuPositions() {\n const node = this._refs.input;\n const rect = node.getBoundingClientRect();\n const computedStyle = window.getComputedStyle(node);\n const marginBottom = parseInt(computedStyle.marginBottom, 10) || 0;\n const marginLeft = parseInt(computedStyle.marginLeft, 10) || 0;\n const marginRight = parseInt(computedStyle.marginRight, 10) || 0;\n this.setState({\n menuTop: rect.bottom + marginBottom,\n menuLeft: rect.left + marginLeft,\n menuWidth: rect.width + marginLeft + marginRight,\n });\n }\n\n highlightItemFromMouse(index) {\n this.setState({ highlightedIndex: index });\n }\n\n selectItemFromMouse(item) {\n const value = this.props.getItemValue(item);\n\n // The menu will de-render before a mouseLeave event\n // happens. Clear the flag to release control over focus\n this._ignoreBlur = this.props.keepInputAfterSelection;\n this.setState(\n {\n isOpen: this.props.keepInputAfterSelection,\n highlightedIndex: null,\n },\n () => {\n this.props.onSelect(value, item);\n }\n );\n }\n\n renderMenu() {\n const items = this.getFilteredItems().map((item, index) => {\n const element = this.props.renderItem(\n item,\n this.state.highlightedIndex === index,\n {\n cursor: \"default\",\n currentInputValue: this.props.value,\n },\n index\n );\n let eventHandlers;\n // istanbul ignore else - noop\n if (!this.props.skipEventHanders) {\n eventHandlers = {\n onMouseEnter: this.props.isItemSelectable(item)\n ? () => this.highlightItemFromMouse(index)\n : null,\n onClick: this.props.isItemSelectable(item)\n ? () => this.selectItemFromMouse(item)\n : null,\n };\n }\n return React.cloneElement(element, {\n ...eventHandlers,\n ref: (e) => (this._refs[`item-${index}`] = e),\n });\n });\n const style = {\n left: this.state.menuLeft,\n top: this.state.menuTop,\n minWidth: this.state.menuWidth,\n };\n const menu = this.props.renderMenu(items, this.props.value, style);\n return React.cloneElement(menu, {\n ref: (e) => (this._refs.menu = e),\n // Ignore blur to prevent menu from de-rendering before we can process click\n onTouchStart: () => (this._ignoreBlur = true),\n onMouseEnter: () => (this._ignoreBlur = true),\n onMouseLeave: () => (this._ignoreBlur = false),\n });\n }\n\n handleInputBlur(event) {\n if (this._ignoreBlur) {\n this._ignoreFocus = true;\n this._scrollOffset = getScrollOffset();\n this._refs.input.focus();\n return;\n }\n /**\n * If the user blurs the input by clicking the multi-select button, use some\n * local state to tell the onClick handler to not steal focus from the input.\n */\n if (\n document.getElementById(\"multiselect-caret-btn\") === event?.relatedTarget\n ) {\n this._actionButtonEnabled = false;\n }\n\n let setStateCallback;\n const { highlightedIndex } = this.state;\n if (this.props.selectOnBlur && highlightedIndex !== null) {\n const items = this.getFilteredItems();\n const item = items[highlightedIndex];\n const value = this.props.getItemValue(item);\n setStateCallback = () => this.props.onSelect(value, item);\n }\n this.setState(\n {\n isOpen: false,\n highlightedIndex: null,\n },\n setStateCallback\n );\n const { onBlur } = this.props.inputProps;\n if (onBlur) {\n onBlur(event);\n }\n }\n\n handleInputFocus(event) {\n if (this._ignoreFocus) {\n this._ignoreFocus = false;\n const { x, y } = this._scrollOffset;\n this._scrollOffset = null;\n // Focus will cause the browser to scroll the <input> into view.\n // This can cause the mouse coords to change, which in turn\n // could cause a new highlight to happen, cancelling the click\n // event (when selecting with the mouse)\n window.scrollTo(x, y);\n // Some browsers wait until all focus event handlers have been\n // processed before scrolling the <input> into view, so let's\n // scroll again on the next tick to ensure we're back to where\n // the user was before focus was lost. We could do the deferred\n // scroll only, but that causes a jarring split second jump in\n // some browsers that scroll before the focus event handlers\n // are triggered.\n clearTimeout(this._scrollTimer);\n this._scrollTimer = setTimeout(() => {\n this._scrollTimer = null;\n window.scrollTo(x, y);\n }, 0);\n return;\n }\n this.setState({ isOpen: true });\n const { onFocus } = this.props.inputProps;\n if (onFocus) {\n onFocus(event);\n }\n }\n\n isInputFocused() {\n const el = this._refs.input;\n return el.ownerDocument && el === el.ownerDocument.activeElement;\n }\n\n handleInputClick() {\n // Input will not be focused if it's disabled\n // istanbul ignore next - fixes rare edge case that can't be exercised in unit tests (without manually modifying state) caused by users clicking disabled buttons\n if (this.isInputFocused() && !this.isOpen()) {\n this.setState({ isOpen: true });\n }\n }\n\n composeEventHandlers(internal, external) {\n return external\n ? (e) => {\n internal(e);\n // istanbul ignore else - noop for browser-only related issues that we need to halt event propagation on (for focus management, mostly)\n if (!e.defaultPrevented) {\n external(e);\n }\n }\n : internal;\n }\n\n isOpen() {\n return \"open\" in this.props ? this.props.open : this.state.isOpen;\n }\n\n renderButton() {\n const { isMultiSelect, buttonOpenLabel, buttonClosedLabel } = this.props;\n if (!isMultiSelect) {\n return null;\n }\n if (this.props.hideInputCaret) {\n return null;\n }\n\n const selectIcon = this.isOpen() ? \"caret_up\" : \"caret_dn\";\n\n const onClickHandler = () => {\n /**\n * If we click on the button and the menu isn't open, no big deal! Let's\n * enable it.\n *\n * But if we click on the button and the menu is open, we don't want to\n * steal the focus from the input. So we disable the button's normal\n * behavior until the user clicks again.\n */\n if (this._actionButtonEnabled) {\n this._refs.input?.focus();\n } else {\n this._actionButtonEnabled = true;\n }\n };\n\n return (\n <Button\n id=\"multiselect-caret-btn\"\n data-testid=\"multiselect-caret-btn-test\"\n type=\"button\"\n icon={selectIcon}\n size=\"default\"\n className={styles[\"trigger-button-icon\"]}\n color=\"#666\"\n onClick={onClickHandler}\n aria-label={this.isOpen() ? buttonOpenLabel : buttonClosedLabel}\n title={this.isOpen() ? buttonOpenLabel : buttonClosedLabel}\n />\n );\n }\n\n render() {\n const {\n inputProps,\n renderInput,\n value,\n popperEnabled,\n wrapperStyle,\n wrapperProps,\n } = this.props;\n\n const open = this.isOpen();\n // istanbul ignore if - small browser-related focus-management quirk that can't be covered in JSDom without directly manipulating state\n if (!open && this._ignoreBlur) {\n this._ignoreBlur = false;\n }\n\n const inputComponent = renderInput({\n ...inputProps,\n \"aria-autocomplete\": \"list\",\n autoComplete: \"off\",\n ref: this.exposeAPI,\n onFocus: this.handleInputFocus,\n onBlur: this.handleInputBlur,\n onChange: this.handleChange,\n onKeyDown: this.composeEventHandlers(\n this.handleKeyDown,\n inputProps.onKeyDown\n ),\n onClick: this.composeEventHandlers(\n this.handleInputClick,\n inputProps.onClick\n ),\n highlightedIndex: this.state.highlightedIndex,\n value,\n });\n\n const componentStyles = cx(wrapperStyle, wrapperProps, {\n [styles[\"popper-wrapper\"]]: popperEnabled,\n [styles[\"relative-wrapper\"]]: !popperEnabled,\n });\n\n return popperEnabled ? (\n <>\n <Popover\n isOpen={open}\n parent={inputComponent}\n popoverComponent={this.renderMenu()}\n className={componentStyles}\n position=\"bottom\"\n data-testid=\"meatBallMenu-popover\"\n popperProps={{\n className: styles[\"full-width\"],\n sameWidth: true,\n }}\n />\n </>\n ) : (\n <div className={componentStyles}>\n {inputComponent}\n {this.renderButton()}\n {open && this.renderMenu()}\n </div>\n );\n }\n}\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a cache value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, props) {\n object = Object(object);\n return basePickBy(object, props, function(value, key) {\n return key in object;\n });\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Creates an array of the own and inherited enumerable symbol properties\n * of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable string keyed properties of `object` that are\n * not omitted.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [props] The property identifiers to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = baseRest(function(object, props) {\n if (object == null) {\n return {};\n }\n props = arrayMap(baseFlatten(props, 1), toKey);\n return basePick(object, baseDifference(getAllKeysIn(object), props));\n});\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = omit;\n","import PropTypes from \"prop-types\";\n\nexport const MultiSelectItem = PropTypes.shape({\n id: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n pillText: PropTypes.string,\n freeform: PropTypes.bool,\n});\n","import React from \"react\";\n\nimport cx from \"classnames\";\nimport omit from \"lodash.omit\";\nimport PropTypes from \"prop-types\";\n\nimport { useUIDSeed } from \"../../helpers/useUIDSeed\";\nimport baseInputStyles from \"../Input/Input.scss\";\n\nimport multiSelectStyles from \"./MultiSelect.scss\";\nimport { MultiSelectItem } from \"./MultiSelectItem\";\n\nexport default function MultiSelectInput({\n inputRef,\n containerRef,\n inputProps: { error, disabled, placeholder, ...inputProps },\n maxSelections,\n selectedItems,\n renderSelection,\n onRemoveSelection,\n suggestionsOpen,\n hideSearchInput,\n alwaysDisplayInput,\n ariaDescribedBy,\n listId,\n highlightedIndex,\n}) {\n const generateUID = useUIDSeed(listId);\n const itemId = generateUID(highlightedIndex);\n const hasHighlightedIndex = highlightedIndex !== null;\n const activeDescendantProps = {\n ...(hasHighlightedIndex ? { \"aria-activedescendant\": itemId } : null),\n };\n // hide the input on mouse off if there is 1 selected item already\n const input =\n suggestionsOpen || !selectedItems.length\n ? \"input-wrapper\"\n : \"input-hide-wrapper\";\n\n // overwrite the class if the alwaysDisplayInput prop is ON\n const multiSelectInputStyle = alwaysDisplayInput ? \"input-wrapper\" : input;\n\n const wrapperClasses = cx(\n multiSelectStyles[multiSelectInputStyle],\n baseInputStyles[\"input\"],\n {\n [baseInputStyles[\"input--disabled\"]]: disabled,\n [baseInputStyles[\"input--error\"]]: error,\n [multiSelectStyles[\"input--hide\"]]: hideSearchInput,\n [multiSelectStyles[\"input--active\"]]: suggestionsOpen,\n }\n );\n const disallowMoreSelections =\n maxSelections !== 0 && selectedItems.length >= maxSelections;\n\n const inputStyle = disallowMoreSelections ? { display: \"none\" } : {};\n return (\n <div className={wrapperClasses} data-testid=\"multiselect-input-test\">\n <div\n ref={containerRef}\n className={multiSelectStyles[\"selection-container\"]}\n >\n {selectedItems.map((item, i) => (\n <div\n key={generateItemKey(\"dropdown\", item.id)}\n className={multiSelectStyles[\"selection-items-container\"]}\n >\n {renderSelection({ tabIndex: i, item, onRemoveSelection })}\n </div>\n ))}\n <div className={multiSelectStyles[\"selection-input-container\"]}>\n <input\n style={inputStyle}\n ref={inputRef}\n disabled={disabled}\n className={multiSelectStyles[\"input\"]}\n placeholder={placeholder}\n {...omit(inputProps, \"onTextChange\")}\n aria-describedby={ariaDescribedBy}\n role=\"combobox\"\n aria-autocomplete=\"both\"\n aria-controls={listId}\n aria-expanded={suggestionsOpen}\n {...activeDescendantProps}\n />\n </div>\n </div>\n </div>\n );\n}\n\nfunction generateItemKey(comp, id) {\n return comp + \"-\" + id.replace(/ /g, \"-\");\n}\n\nMultiSelectInput.propTypes = {\n inputRef: PropTypes.func,\n containerRef: PropTypes.func,\n inputProps: PropTypes.shape({\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n error: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n }),\n maxSelections: PropTypes.number,\n selectedItems: PropTypes.arrayOf(MultiSelectItem),\n renderSelection: PropTypes.func,\n onRemoveSelection: PropTypes.func,\n suggestionsOpen: PropTypes.bool,\n alwaysDisplayInput: PropTypes.bool,\n};\n","import React from \"react\";\n\nimport cx from \"classnames\";\n\nimport { coalesce } from \"@kazoohr/helpers\";\n\nimport { useBlurHandlers } from \"../../helpers/useBlurHandlers\";\nimport { EmployeeList } from \"../EmployeeList\";\nimport { Employee } from \"../EmployeeList/EmployeeList\";\nimport { Icon } from \"../Icon\";\nimport { IconDictionary } from \"../Icon/types\";\nimport { Popover } from \"../Popover\";\nimport { ProfilePic } from \"../ProfilePic\";\n\nimport styles from \"./Pill.scss\";\n\nexport type PillVariants =\n | \"gray\"\n | \"outline\"\n | \"primary\"\n | \"secondary\"\n | \"warning\"\n | \"counter\";\nexport type PillSize = \"large\" | \"small\";\nexport type PillElement = string | number | React.ReactNode | React.ReactNode[];\n\nexport interface PillProps {\n /**\n * Icon to display in the pill\n */\n icon?: IconDictionary;\n /**\n * Text content of the pill\n */\n text?: PillElement;\n /**\n * Content to show on hover\n */\n hoverContent?: PillElement;\n /**\n * Additional CSS class names\n */\n className?: string;\n /**\n * Test ID for the pill\n */\n \"data-testid\"?: string;\n /**\n * Visual variant of the pill\n */\n variant?: PillVariants;\n /**\n * Size of the pill\n */\n size?: PillSize;\n /**\n * Whether the pill shows a list on click\n */\n listShowable?: boolean;\n /**\n * List of users to show when listShowable is true\n */\n users?: Employee[];\n /**\n * Click handler for the pill\n */\n onClick?: () => void;\n /**\n * Close handler for the pill\n */\n onClose?: () => void;\n /**\n * Key press handler for the pill\n */\n onKeyPress?: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n /**\n * User data for avatar display\n */\n avatarUser?: Record<string, unknown>;\n /**\n * Tab index for the pill\n */\n tabIndex?: number;\n}\n\n/**\n * A pill component to hold small tidbits of text and even an icon.\n */\n// eslint-disable-next-line max-lines-per-function\nexport function Pill({\n icon,\n className = \"\",\n variant = \"gray\",\n size = \"large\",\n text,\n listShowable,\n hoverContent,\n users = [],\n onClose,\n onClick,\n avatarUser,\n tabIndex,\n onKeyPress,\n ...extra\n}: PillProps) {\n const [isHovering, setIsHovering] = React.useState(false);\n const dataTestId = extra[\"data-testid\"];\n const variantClassName = `pill--${variant}`;\n const hasHover = Boolean(listShowable || onClick);\n const brandingStyle = coalesce(styles[variantClassName], variantClassName);\n const hoverStyle = coalesce(\n styles[`${variantClassName}-has-hover`],\n `${variantClassName}-has-hover`\n );\n\n const pillStyles = cx(className, {\n [styles[\"pill\"]]: true,\n [brandingStyle]: true,\n [styles[size]]: true,\n [styles[\"has-hover\"]]: hasHover,\n [`${variantClassName}-has-hover`]: hasHover,\n [hoverStyle]: hasHover,\n });\n\n const excludeBackground = variant === \"primary\" || variant === \"secondary\";\n\n const iconStyle = excludeBackground\n ? `${variantClassName}-color`\n : variantClassName;\n const [focused, setFocused] = React.useState(false);\n\n const [blurHandler, childFocusHandler] = useBlurHandlers(() => {\n setFocused(false);\n setClicked(false);\n });\n\n const focusHandler = () => {\n setFocused(true);\n childFocusHandler();\n };\n\n const [clicked, setClicked] = React.useState(false);\n\n const onKeyDown = (evt: React.KeyboardEvent<HTMLDivElement>) => {\n if (evt.key === \"Enter\") {\n setClicked(!clicked);\n }\n };\n\n let containerProps: Record<string, unknown> = {\n onClick,\n };\n\n if (listShowable) {\n containerProps = {\n role: \"button\",\n tabIndex: 0,\n onClick: () => setClicked(!clicked),\n onKeyDown: onKeyDown,\n onFocus: focusHandler,\n onBlur: blurHandler,\n };\n }\n\n const PillContent = (\n <div\n role={onClick ? \"button\" : \"\"}\n tabIndex={tabIndex}\n onKeyPress={onKeyPress}\n data-testid={dataTestId}\n className={pillStyles}\n onMouseEnter={() => setIsHovering(true)}\n onMouseLeave={() => setIsHovering(false)}\n {...containerProps}\n >\n {avatarUser && (\n <div data-testid=\"pill-avatar\" className={styles[\"pill-avatar\"]}>\n <ProfilePic dimensions={24} size=\"small\" user={avatarUser} />\n </div>\n )}\n {icon && (\n <div\n data-testid={`${coalesce(dataTestId, \"pill\")}-icon-wrapper`}\n className={styles.icon}\n >\n <Icon icon={icon} size={12} className={iconStyle} variant=\"thin\" />\n </div>\n )}\n <div data-testid=\"pill-text\">{text}</div>\n {onClose && (\n <div data-testid=\"pill-close-icon\" className={styles[\"pill-close\"]}>\n <div onClick={onClose}>\n <Icon className={iconStyle} size={8} icon=\"close\" variant=\"thin\" />\n </div>\n </div>\n )}\n </div>\n );\n\n return (\n <>\n {Boolean(listShowable) && (\n <Popover\n parent={PillContent}\n isOpen={clicked && focused}\n popoverComponent={<EmployeeList employees={users} />}\n position=\"bottom-start\"\n className={styles[\"list-card\"]}\n />\n )}\n {Boolean(hoverContent) && (\n <Popover\n parent={PillContent}\n isOpen={isHovering}\n popoverComponent={hoverContent}\n position=\"top-start\"\n className={styles[\"pill-hover-content\"]}\n />\n )}\n {!listShowable && !hoverContent && PillContent}\n </>\n );\n}\n","import React from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport { Pill } from \"../Pill\";\n\nimport styles from \"./MultiSelect.scss\";\nimport { MultiSelectItem } from \"./MultiSelectItem\";\n\nconst MultiSelectPill = ({ tabIndex, item, onRemoveSelection }) => (\n <Pill\n tabIndex={tabIndex}\n onKeyPress={() => onRemoveSelection(item)}\n data-testid=\"tag-selector-pill\"\n text={item.text}\n onClick={onRemoveSelection}\n size=\"large\"\n className={styles[\"default-selection-pill\"]}\n onClose={onRemoveSelection}\n ></Pill>\n);\nexport const renderDefaultSelection = ({\n tabIndex,\n item,\n onRemoveSelection,\n}) => {\n return (\n <MultiSelectPill\n tabIndex={tabIndex}\n key={item.id}\n item={item}\n onRemoveSelection={() => onRemoveSelection(item)}\n />\n );\n};\n\nexport default MultiSelectPill;\n\nMultiSelectPill.propTypes = {\n item: MultiSelectItem.isRequired,\n onRemoveSelection: PropTypes.func,\n removeAriaLabel: PropTypes.string,\n};\n","// Cribbed straight from Mozilla: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\nexport function escapeRegEx(string: string): string {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n}\n","import React from \"react\";\n\nimport MultiSelectSuggestion from \"./MultiSelectSuggestion\";\n\nconst NestedItem = React.forwardRef(\n // eslint-disable-next-line max-lines-per-function\n (\n {\n item,\n originalItems,\n selectedItems,\n onSelectionChange,\n expandedItems,\n onItemExpanded,\n isParentSelected,\n nestedData,\n behaveAsAFilter,\n ...props\n },\n ref\n ) => {\n const getParent = (item) => {\n return item._parent === undefined\n ? undefined\n : originalItems[item._parent];\n };\n\n const isOneOfMyGrandChildrenSelected = (item) => {\n const descendants = getArrayOfDescendantItems(item);\n return descendants.some((descendant) =>\n selectedItems.some((selectedItem) => selectedItem.id === descendant.id)\n );\n };\n\n const getNearestSelectedAncestor = (item) => {\n let cursor = getParent(item);\n while (cursor !== undefined) {\n if (\n selectedItems.some((selectedItem) => selectedItem.id === cursor.id)\n ) {\n break;\n }\n cursor = getParent(cursor);\n }\n return cursor;\n };\n\n const getArrayOfAncestorIndexes = (item) => {\n const array = [];\n let cursor = item;\n do {\n array.push(cursor._parent);\n cursor = getParent(cursor);\n } while (cursor._parent !== undefined);\n return array;\n };\n\n const getArrayOfDescendantItems = (item) => {\n let descendants = [];\n let toTraverse = [];\n toTraverse.push(item);\n\n // Traverse all children\n while (toTraverse.length > 0) {\n const currentItem = toTraverse.pop();\n\n if (currentItem.children) {\n toTraverse = [...toTraverse, ...currentItem.children];\n descendants = [...descendants, ...currentItem.children];\n }\n }\n return descendants;\n };\n\n const onChange = () => {\n if (isItemSelectable) {\n // If the item is indeterminate, select all children and remove\n // descendants from the input list\n if (isIndeterminate && behaveAsAFilter) {\n const selectedChildren = getArrayOfDescendantItems(\n originalItem\n ).filter((i) => selectedItems.map((s) => s.id).includes(i.id));\n\n selectedChildren.forEach((i) => {\n onSelectionChange(i);\n });\n onSelectionChange(originalItem);\n return;\n }\n\n // If the clicked element has a parent\n if (directParent && behaveAsAFilter) {\n const nearestSelectedAncestor =\n getNearestSelectedAncestor(originalItem);\n const ancestorsIndexes = [...getArrayOfAncestorIndexes(originalItem)];\n // If an ancestor is selected, it means that the clicked element must be unselected\n if (nearestSelectedAncestor) {\n let shouldCompute = false;\n\n // Get rid of the parent\n onSelectionChange(nearestSelectedAncestor);\n\n // Loop from the first level of the tree to the level of the clicked element\n for (let i = ancestorsIndexes.length - 1; i >= 0; i--) {\n const ancestorIdx = ancestorsIndexes[i];\n if (\n nearestSelectedAncestor.id === originalItems[ancestorIdx].id ||\n shouldCompute\n ) {\n shouldCompute = true;\n const dontSelect =\n i === 0\n ? originalItem.id\n : originalItems[ancestorsIndexes[i - 1]].id;\n originalItems[ancestorIdx].children\n .filter((children) => children.id !== dontSelect)\n .forEach((children) => onSelectionChange(children));\n }\n }\n return;\n }\n\n const toDelete = [];\n let toPush = [];\n // Check from the level of the clicked element to the first level of the tree\n for (let i = 0; i < ancestorsIndexes.length; i++) {\n const ancestorIdx = ancestorsIndexes[i];\n const ancestor = originalItems[ancestorIdx];\n const dontSelect =\n i === 0\n ? originalItem.id\n : originalItems[ancestorsIndexes[i - 1]].id;\n\n const selectedSiblings = ancestor.children.filter((children) =>\n selectedItems.some((sItem) => sItem.id === children.id)\n );\n if (\n selectedSiblings.length + 1 === ancestor.children.length &&\n !selectedItems.some((i) => i.id === originalItem.id)\n ) {\n toDelete.push(\n ...ancestor.children.filter(\n (children) => children.id !== dontSelect\n )\n );\n toPush = [ancestor];\n } else {\n break;\n }\n }\n if (toDelete.length > 0 || toPush.length > 0) {\n toDelete.forEach((item) => onSelectionChange(item));\n toPush.forEach((item) => onSelectionChange(item));\n return;\n }\n }\n onSelectionChange(originalItem);\n }\n };\n\n /** ************ RENDER LOGIC **************/\n const originalItem = !nestedData\n ? item\n : originalItems.filter((originalItem) => originalItem.id === item.id)[0];\n const isItemSelectable =\n item._isItemSelectable !== undefined ? item._isItemSelectable : true;\n\n // If element does not include nested results, render a simple row and avoid\n // further computing\n if (\n !nestedData ||\n (originalItem._parent === undefined &&\n originalItem.children === undefined)\n ) {\n const isSelected = selectedItems.some(\n (item) => item.id === originalItem.id\n );\n return (\n <MultiSelectSuggestion\n {...props}\n onChange={() => onSelectionChange(originalItem)}\n key={originalItem.id}\n item={originalItem}\n isSelected={isSelected}\n isItemSelectable={isItemSelectable}\n hasChildren={false}\n ref={ref}\n />\n );\n }\n\n const isIndeterminateFn = () => {\n if (!hasChildren || (isSelected && !behaveAsAFilter)) {\n return false;\n }\n if (\n howManyChildrenSelected < originalItem.children.length &&\n howManyChildrenSelected > 0\n ) {\n return true;\n }\n return isOneOfMyGrandChildrenSelected(originalItem);\n };\n\n const isSelectedFn = () => {\n if (selectedItems.some((item) => item.id === originalItem.id)) {\n return true;\n }\n if (!behaveAsAFilter) {\n return false;\n }\n if (\n hasChildren &&\n originalItem.children.length === howManyChildrenSelected\n ) {\n return true;\n }\n return Boolean(isParentSelected);\n };\n\n const directParent = getParent(originalItem);\n const hasChildren =\n originalItem.children && originalItem.children.length > 0;\n const displayChildren = hasChildren\n ? expandedItems.some((id) => id === item.id)\n : false;\n const howManyChildrenSelected = !hasChildren\n ? 0\n : originalItem.children.filter((children) =>\n selectedItems.some((sItem) => sItem.id === children.id)\n ).length;\n const isSelected = isSelectedFn();\n const isIndeterminate = isIndeterminateFn();\n\n let childrenRender;\n if (displayChildren) {\n childrenRender = item.children.map((children) => (\n <NestedItem\n {...props}\n key={children.id}\n item={children}\n originalItems={originalItems}\n selectedItems={selectedItems}\n onSelectionChange={onSelectionChange}\n expandedItems={expandedItems}\n onItemExpanded={onItemExpanded}\n isParentSelected={isSelected}\n nestedData={nestedData}\n behaveAsAFilter={behaveAsAFilter}\n />\n ));\n }\n\n return (\n <div>\n <MultiSelectSuggestion\n {...props}\n item={originalItem}\n isSelected={isSelected}\n key={item.id}\n isIndeterminate={isIndeterminate}\n isItemSelectable={isItemSelectable}\n displayChildren={displayChildren}\n hasChildren={hasChildren}\n onDisplayChildrenChange={onItemExpanded}\n onChange={onChange}\n nestedData={nestedData}\n />\n {childrenRender}\n </div>\n );\n }\n);\n\nexport default NestedItem;\n","/* eslint no-unused-vars: [\"error\", { \"argsIgnorePattern\": \"^_\" }]*/\nimport React, { Fragment } from \"react\";\n\nimport cx from \"classnames\";\n\nimport { escapeRegEx } from \"../../helpers/escapeRegex\";\nimport { useUIDSeed } from \"../../helpers/useUIDSeed\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Divider } from \"../Divider\";\nimport { IconButton } from \"../IconButton\";\nimport { Pill } from \"../Pill\";\n\nimport styles from \"./MultiSelect.scss\";\nimport NestedItem from \"./NestedItem\";\n\nfunction renderText(text, currentValue) {\n if (!text) {\n return \"\";\n }\n const regex = new RegExp(escapeRegEx(currentValue), \"ig\");\n const match = text.match(regex);\n let idx = -1;\n\n if (!currentValue || !match?.length) {\n return text;\n }\n\n return text.split(regex).reduce((res, item) => {\n idx++;\n const boldText = match[idx] ? (\n <b key={`multi-select-${idx}`}>{match[idx]}</b>\n ) : (\n \"\"\n );\n return [...res, boldText, item];\n });\n}\n\nexport const VARIANTS = {\n BASIC: \"basic\",\n SYSTEM: \"system\",\n};\n\nexport const MultiSelectSuggestion = React.forwardRef(\n // eslint-disable-next-line max-lines-per-function\n (\n {\n item,\n isHighlighted,\n isSelected,\n currentInputValue,\n indeterminate,\n displayChildren,\n isItemSelectable,\n checkbox,\n onDisplayChildrenChange,\n onChange,\n hasChildren,\n isIndeterminate,\n nestedData,\n variant = VARIANTS.BASIC,\n listId,\n index,\n ...menuProps\n },\n ref\n ) => {\n const generateUID = useUIDSeed(listId);\n const itemId = generateUID(index);\n const pillClassName = cx(styles[\"checkbox-pill\"], {\n [styles[\"disabled-pill\"]]: !isItemSelectable,\n });\n\n function wrapContent(content) {\n return (\n <>\n <Divider className={styles[\"checkbox-divider\"]} />\n <div\n className={\n item.user\n ? styles[\"person-checkbox-wrapper\"]\n : styles[\"checkbox-wrapper\"]\n }\n style={{ marginLeft: `${item._treeLevel * 7}px` }}\n >\n {content}\n {item.pillText && (\n <>\n <span className=\"screen-reader-only\">,</span>\n <Pill\n data-testid=\"checkbox-pill\"\n text={item.pillText}\n size=\"small\"\n className={pillClassName}\n />\n </>\n )}\n </div>\n </>\n );\n }\n\n /**\n * :::::::::::::::: 4 List Item Styles ::::::::::::::::\n * 1. no checkbox && no nestedData (normal style)\n * 2. no checkbox && nestedData (nested style, single select)\n * 3. checkbox && no nestedData (normal style)\n * 4. checkbox && nestedData (nested style, multiple select)\n */\n const renderItem = () => {\n if (variant === \"system\") {\n return (\n <Fragment>\n <div className={styles[\"suggestion-container\"]}>\n <div className={styles[\"suggestion-text\"]}>\n <span> {renderText(item.text, currentInputValue)}</span>\n </div>\n <div className={styles[\"suggestion-helper-text\"]}>\n <span className=\"screen-reader-only\">,</span>\n <span> {renderText(item.helperText, currentInputValue)}</span>\n </div>\n </div>\n </Fragment>\n );\n }\n\n /* Style 1 */\n if (!checkbox && !nestedData) {\n if (item.pillText) {\n return renderText(item.pillText, currentInputValue);\n }\n return renderText(item.text, currentInputValue);\n }\n\n let content;\n let iconButton = (\n <IconButton\n data-testid=\"multiselect-item-caret-test\"\n key={`Icon-${item.id}`}\n className={styles[\"list-caret\"]}\n icon={displayChildren ? \"caret_up\" : \"caret_dn\"}\n iconVariant=\"regular\"\n onClick={(e) => {\n e.stopPropagation();\n isItemSelectable && onDisplayChildrenChange(item);\n }}\n system={false}\n type=\"button\"\n />\n );\n\n /* Style 2 */\n if (!checkbox && nestedData) {\n content = (\n <div>\n {renderText(item.text, currentInputValue)}\n {hasChildren && iconButton}\n </div>\n );\n } else {\n /* Style 3 and 4 */\n content = (\n <Checkbox\n id={item.id}\n indeterminate={isIndeterminate}\n onIndeterminateChange={onChange}\n data-testid=\"multiselect-checkbox-item-test\"\n checked={isSelected}\n disabled={!isItemSelectable}\n className={!isItemSelectable ? styles[\"check-box-disabled\"] : \"\"}\n label={[\n renderText(item.text, currentInputValue),\n hasChildren && iconButton,\n ]}\n helperText={\n <>\n <span className=\"screen-reader-only\">,</span>\n {renderText(item.helperText || \" \", currentInputValue)}\n </>\n }\n onChange={onChange}\n user={item.user}\n />\n );\n }\n\n return wrapContent(content);\n };\n\n return (\n <li\n className={cx(styles[\"suggestion-row\"], {\n [styles[\"suggestion-row--highlighted\"]]: isHighlighted,\n [styles[\"suggestion-row--checkbox\"]]: checkbox,\n [styles[\"suggestion-row--border-bottom\"]]: variant === \"system\",\n })}\n key={item.id}\n id={itemId}\n role=\"option\"\n aria-selected={isHighlighted}\n ref={ref}\n onClick={isItemSelectable && !indeterminate ? onChange : null}\n onKeyDown={() => {}}\n data-testid=\"multiselect-list-item-test\"\n {...menuProps}\n >\n {renderItem()}\n </li>\n );\n }\n);\n\nexport const renderDefaultSuggestion = ({ item, ...props }) => {\n return <NestedItem key={item.id} item={item} {...props} />;\n};\n\nexport default MultiSelectSuggestion;\n","import React, { useEffect, useMemo } from \"react\";\n\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { useUIDSeed } from \"../../helpers/useUIDSeed\";\nimport Autocomplete from \"../Autocomplete\";\nimport { ControlWrapper } from \"../ControlWrapper\";\nimport { InfiniteLoader } from \"../InfiniteLoader\";\n\nimport styles from \"./MultiSelect.scss\";\nimport MultiSelectInput from \"./MultiSelectInput\";\nimport { MultiSelectItem } from \"./MultiSelectItem\";\nimport { renderDefaultSelection } from \"./MultiSelectPill\";\nimport { renderDefaultSuggestion, VARIANTS } from \"./MultiSelectSuggestion\";\nimport { MultiSelectSuggestionEmpty } from \"./MultiSelectSuggestionEmpty\";\n\nconst GARBAGE_CHARS = /[,]/g;\n\n/**\n * Trims commas and such from tags\n */\nconst trimInput = (value) => {\n return value.replace(GARBAGE_CHARS, \"\").trim();\n};\n\nexport const flatItems = (items) => {\n const flatArr = [];\n let treeLevel = 0;\n\n const recursiveCall = (items, parentIdx) => {\n for (const item of items) {\n // _parent : reference of the parent (index of the parent in the originalItems array).\n // Useful to avoid search of it in the future\n const _parent = treeLevel === 0 ? undefined : parentIdx;\n const newItem = { ...item, _parent, _treeLevel: treeLevel };\n flatArr.push(newItem);\n if (item.children && item.children.length > 0) {\n treeLevel++;\n recursiveCall(item.children, flatArr.length - 1);\n treeLevel--;\n }\n }\n };\n\n recursiveCall(items, undefined);\n return flatArr;\n};\n\n// TODO: import this from InfiniteLoader when we move to typescript\n/**\n * @typedef {object} InfiniteLoaderProps\n * @prop {boolean} hasNextPage\n * @prop {boolean} loading\n * @prop {Function} fetchMoreResults\n * @prop {string} [spacerSize]\n * @prop {number} [minimumTime] The minimum time to show the loader *before* executing fetchMoreResults\n */\n\n/**\n * @typedef {object} MultiSelectProps\n * @prop {Array<{ id: string, text: string, pillText?: string, freeform?: boolean, user?: Array<{id: string, initials: string, avatar?: string, jobTitle?: string, name?: string }> }>} [items=[]] Items to use as suggestions; display in the dropdown\n * @prop {Array<{ id: string, text: string, pillText?: string, freeform?: boolean }>} [selectedItems=[]] Items that have been selected; display in the input field\n * @prop {boolean} [suggestionsOpen=false] Whether the suggestions dropdown is open\n * @prop {function} [setSuggestionsOpen] Function that sets `suggestionsOpen`\n * @prop {React.ReactNode} [emptySuggestionsComponent] Message to display when there are no suggestions\n * @prop {string} [inputText=''] Text entered into input field\n * @prop {function} [setInputText] Function that sets `inputText`; takes string as argument\n * @prop {function} [onTextChange] Function called when `inputText` changes\n * @prop {function} [onSelectionChange] Function called when item is selected; takes item as argument\n * @prop {function} [onBackspaceRemoval] Function called when backspace is used and there is no input to delete; no args\n * @prop {boolean} [allowFreeformInput=false] Whether a user can manually add an item via the input field\n * @prop {number} [maxSelections=0] Limits the number of selected items allowed\n * @prop {function} [renderSelection] Function to custom render selected items in input field; params are `item` and `onRemoveSelection` (the `onSelectionChange` function)\n * @prop {function} [renderSuggestion] Function to custom render suggested items in dropdown; params are `item`, `isHighlighted`, `isSelected`, `currentInputValue`, `checkbox`, and `onChange` (the `onSelectionChange(item)` function)\n * @prop {boolean} [checkbox=false] Whether to render the checkbox design\n * @prop {string} id Used for Input Id\n * @prop {string} [helperButtonLabel] Text to render in the helper button\n * @prop {function} [helperButtonClick] On click handler for the helper button\n * @prop {string} [className=\"\"] CSS class name to add to Popover Card element\n * @prop {Array} [expandedItems=[]] Ids of the items that will render (expand) their children\n * @prop {function} [onItemExpanded] Function called when the expaned icon of a parent is clicked\n * @prop {boolean} [nestedData] Enable nested data\n * @prop {boolean} [captureTextOnBlur] Enable ability to click off of multiSelect and select the text written into the input field\n * @prop {boolean} [popperEnabled=false]\n * @prop {'filter'|'select'} [behaveAs='select']\n * @prop {'basic'|'system'} [variant='basic'] Style of suggestions\n * @prop {React.ReactNode} [tooltip] Input tooltip\n * @prop {boolean} [hideSearchInput=false] Hide the search input of the multiselect\n * @prop {boolean} [hideInputCaret=false] Whether or not the input caret will be displayed\n * @prop {React.ReactNode} [actions] Multiselect actions that will be displayed at the bottom of the options list\n * @prop {boolean} [alwaysDisplayInput=false] The input that triggers the suggestions dropdown always will be displayed\n * @prop {InfiniteLoaderProps} [infiniteLoaderProps] Props to pass to the InfiniteLoader component\n * @prop {string} [ariaDescribedBy] When using with a tooltip, include a matching string here to aid screen readers. Can be used with any element whose ID matches this string or with the built-in tooltip in this component. Just provide a tooltip in addition to this prop.\n * @prop {string} [buttonOpenLabel] Label for the chevron button when it is open\n * @prop {string} [buttonClosedLabel] Label for the chevron button when it is closed\n */\n\n/**\n * A large panel of content attached to a specific element on the page.\n * @param {MultiSelectProps} props\n */\n// eslint-disable-next-line max-lines-per-function\nexport default function MultiSelect({\n items = [],\n selectedItems = [],\n suggestionsOpen = false,\n setSuggestionsOpen = () => {},\n emptySuggestionsComponent = null,\n inputText = \"\",\n setInputText = () => {},\n onTextChange = () => {},\n onSelectionChange = () => {},\n onBackspaceRemoval = () => {},\n allowFreeformInput,\n maxSelections = 0,\n renderSelection = renderDefaultSelection,\n renderSuggestion = renderDefaultSuggestion,\n id,\n checkbox = false,\n expandedItems = [],\n onItemExpanded = () => {},\n nestedData = false,\n captureTextOnBlur = false,\n popperEnabled = false,\n behaveAs = \"select\",\n suggestionsTestId = \"multiselect-listbox-test\",\n variant = VARIANTS.BASIC,\n hideSearchInput = false,\n hideInputCaret = false,\n alwaysDisplayInput = false,\n actions,\n infiniteLoaderProps,\n ariaDescribedBy,\n buttonOpenLabel,\n buttonClosedLabel,\n ...controlWrapperProps\n}) {\n const generateUID = useUIDSeed(id, suggestionsTestId, behaveAs);\n const listId = generateUID(\"listbox\");\n\n useEffect(() => onTextChange(inputText), [inputText]);\n // Items without filtering\n const memoizedOriginalItems = useMemo(() => flatItems(items), []);\n\n const saveTrimmedText = () => {\n const trimmedText = trimInput(inputText);\n if (!allowFreeformInput || !trimmedText) {\n return;\n }\n const newItem = { id: generateUID(trimmedText), text: trimmedText };\n onSelectionChange(newItem);\n setInputText(\"\");\n };\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case \"Enter\":\n case \",\": {\n saveTrimmedText();\n event.preventDefault();\n break;\n }\n case \"Backspace\":\n if (event.target.selectionEnd) {\n return;\n }\n onBackspaceRemoval();\n break;\n }\n };\n\n const multiSelectActions = actions && (\n <div className={styles[\"actions\"]}>{actions}</div>\n );\n\n return (\n <ControlWrapper\n {...controlWrapperProps}\n // Without a label, Autocomplete won't open when clicking in the wrapper\n label={controlWrapperProps.label || \" \"}\n inputId={id}\n tooltipId={ariaDescribedBy}\n renderControl={({ labelId, errorId, helperTextId, ...inputProps }) => (\n <Autocomplete\n hideInputCaret={hideInputCaret}\n inputId={id}\n isMultiSelect\n popperEnabled={popperEnabled}\n skipEventHanders={nestedData ? true : false}\n wrapperStyle={{ position: \"relative\" }}\n items={items}\n value={inputText || \"\"}\n getItemValue={({ text }) => text}\n autoHighlight={!allowFreeformInput}\n aria-labelledby={labelId}\n aria-describedby={`${errorId} ${helperTextId}`}\n buttonOpenLabel={buttonOpenLabel}\n buttonClosedLabel={buttonClosedLabel}\n inputProps={{\n ...inputProps,\n onKeyDown: handleKeyDown,\n onFocus: () => setSuggestionsOpen(true),\n onBlur: () => {\n captureTextOnBlur && saveTrimmedText();\n setSuggestionsOpen(false);\n },\n }}\n onChange={(event, value) => setInputText(value)}\n onSelect={(text, item) => onSelectionChange(item)}\n renderInput={({\n ref,\n highlightedIndex,\n ...autocompleteInputProps\n }) => (\n <MultiSelectInput\n inputRef={ref}\n hideSearchInput={hideSearchInput}\n selectedItems={selectedItems}\n maxSelections={maxSelections}\n inputProps={autocompleteInputProps}\n onRemoveSelection={(item) => onSelectionChange(item)}\n renderSelection={renderSelection}\n suggestionsOpen={suggestionsOpen}\n alwaysDisplayInput={alwaysDisplayInput}\n ariaDescribedBy={ariaDescribedBy}\n listId={listId}\n highlightedIndex={highlightedIndex}\n />\n )}\n renderItem={(item, isHighlighted, _props, index) => {\n return renderSuggestion({\n item,\n isHighlighted,\n currentInputValue: inputText,\n isItemSelectable: true,\n checkbox,\n originalItems: memoizedOriginalItems,\n expandedItems: expandedItems,\n onItemExpanded: onItemExpanded,\n selectedItems,\n onSelectionChange: (item) => {\n onSelectionChange(item);\n setInputText(\"\");\n },\n nestedData,\n behaveAsAFilter: behaveAs === \"filter\",\n variant,\n listId,\n index,\n });\n }}\n renderMenu={(menuItems) => {\n if (menuItems.length === 0 && emptySuggestionsComponent) {\n return (\n <MultiSelectSuggestionEmpty\n emptySuggestionsComponent={emptySuggestionsComponent}\n listId={listId}\n popperEnabled={popperEnabled}\n />\n );\n }\n return (\n <div\n className={cx(styles[\"suggestions-box\"], {\n [styles[\"suggestions-box--hide-search\"]]: hideSearchInput,\n [styles[\"suggestions-box--with-items\"]]: !!items.length,\n [styles[\"suggestions-box--nested\"]]: nestedData,\n [styles[\"suggestions-box--no-popper\"]]: !popperEnabled,\n })}\n >\n <ul\n className={styles[\"suggestions-list\"]}\n data-testid={suggestionsTestId}\n role=\"listbox\"\n id={listId}\n >\n {menuItems}\n {!!infiniteLoaderProps && (\n <InfiniteLoader {...infiniteLoaderProps} />\n )}\n </ul>\n {multiSelectActions}\n </div>\n );\n }}\n keepInputAfterSelection\n open={\n suggestionsOpen &&\n (items.length > 0 || emptySuggestionsComponent) &&\n (maxSelections ? selectedItems.length < maxSelections : true)\n }\n />\n )}\n />\n );\n}\n\n/** @type {any} */\nMultiSelect.propTypes = {\n suggestionsTestId: PropTypes.string,\n items: PropTypes.arrayOf(MultiSelectItem),\n selectedItems: PropTypes.arrayOf(MultiSelectItem),\n suggestionsOpen: PropTypes.bool,\n inputText: PropTypes.string,\n setInputText: PropTypes.func,\n onTextChange: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onBackspaceRemoval: PropTypes.func,\n allowFreeformInput: PropTypes.bool,\n maxSelections: PropTypes.number,\n renderSelection: PropTypes.func,\n renderSuggestion: PropTypes.func,\n checkbox: PropTypes.bool,\n expandedItems: PropTypes.array,\n onItemExpanded: PropTypes.func,\n nestedData: PropTypes.bool,\n captureTextOnBlur: PropTypes.bool,\n alwaysDisplayInput: PropTypes.bool,\n};\n","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","import dayjs from \"dayjs\";\nimport isToday from \"dayjs/plugin/isToday\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport utc from \"dayjs/plugin/utc\";\ndayjs.extend(utc);\ndayjs.extend(isToday);\ndayjs.extend(timezone);\n\n// https://github.com/text-mask/text-mask/issues/550#issuecomment-307551239\nexport function timeMask24(value) {\n const chars = value.split(\"\");\n let hours;\n if (chars.length === 1) {\n hours = [/[0-9]/, /[0-9]/];\n } else if (chars[1] === \":\") {\n // To add the initial zero\n if (chars[0] == \"0\") {\n hours = [\"0\", \"0\"];\n } else {\n hours = [\"0\", /[0-9]/];\n }\n } else {\n hours = [/[0-2]/, chars[0] == \"2\" ? /[0-3]/ : /[0-9]/];\n }\n const minutes = [/[0-5]/, /[0-9]/];\n return hours.concat(\":\").concat(minutes);\n}\nexport function timeMask12(value) {\n const chars = value.split(\"\");\n const hours = [/[0-1]/, chars[0] == \"1\" ? /[0-2]/ : /[0-9]/];\n const minutes = [/[0-5]/, /[0-9]/];\n return hours.concat(\":\").concat(minutes);\n}\nexport function timeMaskWithPeriod(value) {\n const chars = value.split(\"\");\n let hours;\n if (chars.length === 1) {\n hours = [/[0-9]/, /[0-9]/];\n } else if (chars[1] === \":\") {\n // To add the initial zero\n hours = [\"0\", /[0-9]/];\n } else if (chars[0] == \"1\") {\n hours = [/[0-1]/, /[0-2]/];\n } else {\n hours = [/[0-1]/, chars[0] == \"0\" ? /[1-9]/ : /[0-9]/];\n }\n const minutes = [/[0-5]/, /[0-9]/];\n const meridiem = [\" \", /(A|\\P)/i, \"M\"];\n return hours.concat(\":\").concat(minutes).concat(meridiem);\n}\n\nexport function getDropdownItems(\n { amLabel, pmLabel },\n firstAcceptableTime,\n timezone\n) {\n const hours = [12, ...Array.from({ length: 11 }, (_, i) => 1 + i * 1)];\n const formatHours = (hours) => {\n return hours < 10 ? `0${hours}` : hours;\n };\n\n const getHours = (isAm) => {\n const res = [];\n\n hours.forEach((n) => {\n let hour = n;\n if (isAm) {\n if (hour === 12) {\n hour = 0;\n }\n } else {\n if (hour !== 12) {\n hour += 12;\n }\n }\n\n const twelveHours = `${formatHours(n)}:00`;\n const twentyFourHours = `${formatHours(hour)}:00`;\n const twelveHoursHalf = `${formatHours(n)}:30`;\n const twentyFourHoursHalf = `${formatHours(hour)}:30`;\n\n res.push({\n twelveHours,\n twentyFourHours,\n period: isAm ? amLabel : pmLabel,\n disabled: timeIsAfterHHmmFormattedTime(\n firstAcceptableTime,\n twentyFourHours,\n timezone\n ),\n });\n res.push({\n twelveHours: twelveHoursHalf,\n twentyFourHours: twentyFourHoursHalf,\n period: isAm ? amLabel : pmLabel,\n disabled: timeIsAfterHHmmFormattedTime(\n firstAcceptableTime,\n twentyFourHoursHalf,\n timezone\n ),\n });\n });\n\n return res;\n };\n\n const AM = getHours(true);\n const PM = getHours(false);\n\n return [...AM, ...PM];\n}\n\nexport function timeIsAfterHHmmFormattedTime(\n firstAcceptableTime,\n HHmmFormattedTime,\n timezone\n) {\n if (!firstAcceptableTime) {\n return false;\n }\n\n if (typeof firstAcceptableTime.toISOString === \"function\") {\n const compareToTimeSlot = firstAcceptableTime\n .tz(timezone)\n .startOf(\"day\")\n .add(dayjs(HHmmFormattedTime, \"HH:mm\").hour(), \"hour\")\n .add(dayjs(HHmmFormattedTime, \"HH:mm\").minute(), \"minute\");\n return firstAcceptableTime.isAfter(compareToTimeSlot);\n }\n\n return dayjs(dayjs(firstAcceptableTime).format(\"HH:mm\"), \"HH:mm\").isAfter(\n dayjs(HHmmFormattedTime, \"HH:mm\")\n );\n}\n\nexport function floorTime(time) {\n let [hours, minutes] = time.split(\":\");\n minutes = Number(minutes);\n\n if (minutes >= 30) {\n minutes = 30;\n } else {\n minutes = 0;\n }\n\n minutes = minutes > 9 ? `${minutes}` : `0${minutes}`;\n return `${hours}:${minutes}`;\n}\n\n// Transforms the time in 12 hours formate to 24 hours\nexport function TimeIn12To24(time, period, { amLabel, pmLabel }) {\n // 00:00 -> 5 chars\n if (time.length < 5) {\n return null;\n }\n let [hours, minutes] = time.split(\":\");\n if (hours === \"12\") {\n hours = period === amLabel ? \"00\" : hours;\n } else if (period === pmLabel) {\n hours = Number(hours) + 12;\n }\n\n return `${hours}:${minutes}`;\n}\n\nexport function isInputValid(\n time,\n isTwentyFourHoursFormat,\n { amLabel, pmLabel }\n) {\n if (!time) {\n return false;\n }\n time = time.toUpperCase();\n let regex = new RegExp(\"^(2[0-3]|[01][0-9]):([0-5][0-9])$\");\n if (!isTwentyFourHoursFormat) {\n regex = new RegExp(\n `^(1[0-2]|0[1-9]):[0-5][0-9] (${amLabel}|${pmLabel})$`,\n \"i\"\n );\n }\n return regex.test(time);\n}\n\nexport function TransformIntoWantedFormat(\n time,\n toTwentyFour,\n { amLabel, pmLabel }\n) {\n const LABELS = { amLabel, pmLabel };\n let initialPeriod;\n let initialValue = time;\n\n if (isTwelveFormat(initialValue, LABELS)) {\n initialPeriod = initialValue.substr(6, 2);\n initialValue = initialValue.substr(0, 5);\n if (toTwentyFour) {\n initialValue = TimeIn12To24(initialValue, initialPeriod, LABELS);\n }\n } else if (isTweentyFourFormat(initialValue)) {\n initialValue = initialValue.substr(0, 5);\n initialPeriod = Number(initialValue.substr(0, 2)) < 12 ? amLabel : pmLabel;\n if (!toTwentyFour) {\n let hours = Number(initialValue.substr(0, 2));\n let minutes = initialValue.substr(3, 2);\n if (hours === 0) {\n hours = 12;\n } else if (hours > 12) {\n hours -= 12;\n }\n hours = hours < 10 ? `0${hours}` : `${hours}`;\n initialValue = `${hours}:${minutes}`;\n }\n }\n\n return [initialValue, initialPeriod];\n}\n\nexport function isTweentyFourFormat(time) {\n const regex = new RegExp(\"^(2[0-3]|[01][0-9]):([0-5][0-9])$\");\n return regex.test(time);\n}\n\nexport function isTwelveFormat(time, { amLabel, pmLabel }) {\n if (!time || !amLabel || !pmLabel) {\n return false;\n }\n time = time.toUpperCase();\n const regex = new RegExp(\n `^(1[0-2]|0[1-9]):[0-5][0-9] (${amLabel}|${pmLabel})$`,\n \"i\"\n );\n return regex.test(time);\n}\n\nexport function getDefaultTime({ amLabel, pmLabel }) {\n var helper = 1000 * 60 * 30;\n const now = new Date();\n now.setMinutes(now.getMinutes() + 30);\n var rounded = new Date(Math.round(now.getTime() / helper) * helper);\n let hours = rounded.getHours();\n let minutes = rounded.getMinutes();\n let period = amLabel;\n\n if (hours > 12) {\n hours -= 12;\n period = pmLabel;\n }\n if (hours === 0) {\n hours = 12;\n }\n\n minutes = minutes <= 9 ? `0${minutes}` : minutes;\n hours = hours <= 9 ? `0${hours}` : hours;\n\n return `${hours}:${minutes} ${period}`;\n}\n\nexport function completeUncompletedTime(time) {\n const len = time.length;\n const chars = time.split(\"\");\n switch (len) {\n case 1:\n return `${chars[0]}0:00`;\n case 2:\n case 3:\n return `${chars[0]}${chars[1]}:00`;\n case 4:\n return `${chars[0]}${chars[1]}:${chars[3]}0`;\n case 5:\n return `${chars[0]}${chars[1]}:${chars[3]}${chars[4]}`;\n default:\n return \"\";\n }\n}\n","import React, { useRef } from \"react\";\n\nimport cx from \"classnames\";\n\nimport { Button } from \"../Button\";\nimport { Input } from \"../Input\";\n\nimport {\n timeMask24,\n getDropdownItems,\n timeMaskWithPeriod,\n TimeIn12To24,\n floorTime,\n getDefaultTime,\n isInputValid,\n TransformIntoWantedFormat,\n isTweentyFourFormat,\n isTwelveFormat,\n} from \"./helpers\";\nimport styles from \"./TimeInput.scss\";\n\nlet timeIds = 0;\nconst ARROW_UP = 38;\nconst ARROW_DOWN = 40;\nconst ENTER = 13;\nconst AM_LABEL = \"AM\";\nconst PM_LABEL = \"PM\";\nconst LABELS = { amLabel: AM_LABEL, pmLabel: PM_LABEL };\nconst DEFAULT_TIME = getDefaultTime(LABELS);\n\n/**\n * A time input component that supports both 12-hour and 24-hour formats\n * @typedef {Object} TimeInputProps\n * @property {string} [id] - The ID for the input element\n * @property {string} [inputClassName] - Additional class name for the input element\n * @property {function} onChange - Callback function when the time value changes\n * @property {boolean} [twentyFour=false] - Whether to use 24-hour format\n * @property {string} [value] - The initial time value\n * @property {boolean} [compact] - Whether to use compact styling\n * @property {boolean} [fullWidth=false] - Whether the input should take full width\n * @property {boolean} [withChevron=true] - Whether to show the chevron button\n * @property {import(\"dayjs\").Dayjs} [firstAcceptableTime] - The earliest acceptable time\n * @property {string} [timezone] - The timezone to use\n * @property {boolean|string} [error] - Error state or message\n */\n\n/**\n * @param {TimeInputProps} props\n * @returns {JSX.Element}\n */\n// eslint-disable-next-line max-lines-per-function\nfunction TimeInput({\n id = `time-picker-${timeIds++}`,\n inputClassName = false,\n onChange,\n twentyFour = false,\n value = DEFAULT_TIME,\n compact,\n fullWidth = false,\n withChevron = true,\n firstAcceptableTime,\n timezone,\n error = undefined,\n ...inputProps\n}) {\n let initialValue = value;\n let initialPeriod = PM_LABEL;\n const chevronId = useRef(Math.random());\n // If the value is not in a date format, use the default value\n if (\n !isTwelveFormat(initialValue, LABELS) &&\n !isTweentyFourFormat(initialValue)\n ) {\n initialValue = DEFAULT_TIME;\n }\n\n [initialValue, initialPeriod] = TransformIntoWantedFormat(\n initialValue,\n twentyFour,\n LABELS\n );\n\n const [time, setTime] = React.useState(initialValue);\n const [isDropdownOpen, setIsDropdownOpen] = React.useState(false);\n const [selectedPeriod, setSelectedPeriod] = React.useState(initialPeriod);\n const [isHoverOnElement, setIsHoverOnElement] = React.useState(false);\n const [isActionButtonEnabled, setisActionButtonEnabled] =\n React.useState(true);\n\n const inputClassNames = cx(\n styles.input,\n { inputClassName },\n { [styles[\"input--focused\"]]: isDropdownOpen },\n { [styles[\"chevron-width\"]]: withChevron },\n { [styles.fullWidth]: fullWidth }\n );\n const dropDownClassNames = cx(styles[\"dropdown-menu\"], {\n [styles[\"dropdown-menu--compact\"]]: compact,\n });\n\n const newOnChange = (time) => {\n time = time.toUpperCase();\n // We'll change the value only if the input matches the regex pattern\n if (isInputValid(time, twentyFour, LABELS)) {\n let period = time.substr(6, 2);\n if (!period) {\n period = Number(time.substr(0, 2)) < 12 ? AM_LABEL : PM_LABEL;\n }\n time = time.substr(0, 5);\n setTime(time);\n setSelectedPeriod(period);\n }\n };\n\n const onClick = () => {\n setIsDropdownOpen(true);\n };\n\n const onClickButton = () => {\n if (isActionButtonEnabled) {\n setIsDropdownOpen(!isDropdownOpen);\n document.getElementById(id).focus();\n } else {\n setisActionButtonEnabled(true);\n }\n };\n\n const onBlur = (event) => {\n // This has to be done, because the blur of the\n // input always triggers before the onClick event in the\n // list items\n\n if (!isHoverOnElement) {\n // Because the input can be blurred while the dropdown is open or closed\n // the actionButton has to be enabled or disabled accordingly\n // Disabling the button allows the click to activate the blur without triggering\n // the onClickButton(), which triggers after the blur.\n // The chevron is not actually activated when clicked in the down position.\n // The onBlur event is however triggered which has the effect of closing the dropdown.\n // ***\n // Set the value that the input displays always to the time value\n // This because when only set the time when it's valid, causing\n // the input and the time var to be different\n if (\n document.getElementById(\n `time-picker-caret-btn-${chevronId.current}`\n ) === event.relatedTarget &&\n isDropdownOpen\n ) {\n setisActionButtonEnabled(false);\n }\n setIsDropdownOpen(false);\n let inputTime = twentyFour ? time : `${time} ${selectedPeriod}`;\n event.target.value = inputTime;\n }\n };\n\n // Gets the index of the nearest time\n const getIndexOfNearestHour = (time, period) => {\n if (time.length < 5) {\n return -1;\n }\n const nearestTime = floorTime(time);\n const items = dropdownElements;\n if (twentyFour) {\n return items.map((item) => item.twentyFourHours).indexOf(nearestTime);\n }\n return items\n .map((item) => `${item.twelveHours} ${item.period}`)\n .indexOf(`${nearestTime} ${period}`);\n };\n\n React.useEffect(() => {\n if (isDropdownOpen) {\n let idx = highlightedIdx;\n // first time clicking the input\n if (idx === -1) {\n idx = getIndexOfNearestHour(time, selectedPeriod);\n setHighlightedIdx(idx === -1 ? 0 : idx);\n }\n const itemNode = itemsRef.current[idx];\n scrollNodeIntoView(itemNode);\n }\n }, [isDropdownOpen]);\n\n React.useEffect(() => {\n let twentyFourHourTime = time;\n if (!twentyFour) {\n twentyFourHourTime = TimeIn12To24(time, selectedPeriod, LABELS);\n }\n onChange(twentyFourHourTime);\n setIsDropdownOpen(false);\n setisActionButtonEnabled(true);\n }, [time, selectedPeriod]);\n\n const input = (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <Input\n {...inputProps}\n id={id}\n compact={compact}\n className={inputClassNames}\n onChange={newOnChange}\n onKeyDown={(e) => onKeyDown(e)}\n onClick={onClick}\n fullWidth={fullWidth}\n onMouseEnter={() => setIsHoverOnElement(false)}\n value={\n twentyFour\n ? time\n : `${time}${selectedPeriod ? \" \" : \"\"}${selectedPeriod}`\n }\n onBlur={(event) => onBlur(event)}\n mask={twentyFour ? timeMask24 : timeMaskWithPeriod}\n defaultValue={twentyFour ? time : `${time} ${selectedPeriod}`}\n guide={false}\n data-testid=\"time-picker-input\"\n autoComplete=\"off\"\n aria-expanded={isDropdownOpen}\n aria-autocomplete=\"list\"\n iconPosition=\"right\"\n error={error}\n />\n <Button\n id={`time-picker-caret-btn-${chevronId.current}`}\n data-testid=\"time-picker-caret-btn-test\"\n type=\"button\"\n icon={\n withChevron ? (isDropdownOpen ? \"caret_up\" : \"caret_dn\") : undefined\n }\n size=\"default\"\n className={styles[\"trigger-button-icon\"]}\n color=\"#666\"\n onClick={onClickButton}\n />\n </div>\n );\n\n // Dropdown\n const onSelectElement = (idx, { twelveHours, twentyFourHours, period }) => {\n setSelectedPeriod(period);\n setTime(twentyFour ? twentyFourHours : twelveHours);\n setHighlightedIdx(idx);\n };\n const dropdownRef = React.useRef(null);\n const itemsRef = React.useRef([]);\n const [highlightedIdx, setHighlightedIdx] = React.useState(-1);\n const dropdownElements = getDropdownItems(\n LABELS,\n firstAcceptableTime,\n timezone\n );\n const dropdown = () => {\n return (\n <ul\n ref={dropdownRef}\n className={dropDownClassNames}\n data-testid=\"time-picker-dropdown\"\n aria-labelledby=\"timeSelector\"\n onMouseEnter={() => setIsHoverOnElement(true)}\n onMouseLeave={() => setIsHoverOnElement(false)}\n >\n {dropdownElements.map((time, idx) => {\n return (\n <li\n key={`time-picker-${(time, idx)}`}\n ref={(el) => (itemsRef.current[idx] = el)}\n onClick={\n time.disabled ? () => {} : () => onSelectElement(idx, time)\n }\n className={cx(styles[\"dropdown-item\"], {\n [styles[\"dropdown-item--focused\"]]: idx === highlightedIdx,\n [styles[\"dropdown-item--disabled\"]]: time.disabled,\n })}\n aria-disabled={time.disabled ? \"true\" : undefined}\n onKeyDown={(e) => e}\n role=\"menuitem\"\n tabIndex=\"-1\"\n >\n {twentyFour\n ? time.twentyFourHours\n : `${time.twelveHours} ${time.period}`}\n </li>\n );\n })}\n </ul>\n );\n };\n\n // INPUT ACTIONS (ARROW DOWN, ARROW UP AND ENTER)\n const onKeyDown = (event) => {\n if (\n (event.keyCode !== ARROW_UP &&\n event.keyCode !== ARROW_DOWN &&\n event.keyCode !== ENTER) ||\n !event.target\n ) {\n return;\n }\n\n setIsDropdownOpen(true);\n if (!isDropdownOpen) {\n return;\n }\n\n if (event.keyCode === ARROW_DOWN) {\n event.preventDefault();\n const items = dropdownElements;\n let index = highlightedIdx === null ? -1 : highlightedIdx;\n index = (index + 1) % items.length;\n if (index > -1 && index !== highlightedIdx) {\n const itemNode = itemsRef.current[index];\n scrollNodeIntoView(itemNode);\n setHighlightedIdx(index);\n }\n }\n\n if (event.keyCode === ARROW_UP) {\n event.preventDefault();\n const items = dropdownElements;\n if (highlightedIdx === 0) {\n // clear suggestions if the user taps ArrowUp at the top of the list rather than wrapping (which makes it\n // impossible to \"escape\" the suggestion list with keyboard input)\n setHighlightedIdx(null);\n return;\n }\n let index = highlightedIdx === null ? items.length : highlightedIdx;\n index = (index - 1) % items.length;\n if (index > -1 && index !== highlightedIdx) {\n const itemNode = itemsRef.current[index];\n scrollNodeIntoView(itemNode);\n setHighlightedIdx(index);\n }\n }\n\n if (event.keyCode === ENTER) {\n // You can't select these, but you can up/down to them for accessibility\n // See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/roles/menuitem_role\n // Note: These shouldn't be menu items anyways, this is built wrong.\n // TODO: WT-19071\n if (dropdownElements[highlightedIdx].disabled) {\n event.preventDefault();\n return;\n }\n\n if (highlightedIdx == null) {\n // input has focus but no menu item is selected + enter is hit -> close the menu, highlight whatever's in input\n setIsDropdownOpen(false);\n } else {\n // text entered + menu item has been highlighted + enter is hit -> update value to that of selected menu item, close the menu\n event.preventDefault();\n const item = dropdownElements[highlightedIdx];\n setTime(twentyFour ? item.twentyFourHours : item.twelveHours);\n setSelectedPeriod(item.period);\n setIsDropdownOpen(false);\n }\n setisActionButtonEnabled(true);\n }\n };\n\n // To scroll to the item in the list\n const scrollNodeIntoView = (nodeRef) => {\n const menu = dropdownRef.current;\n // If the node is below the visible area, scroll down enough to bring the entire node into view.\n const menuBottomEdge = menu.scrollTop + menu.clientHeight;\n if (nodeRef.offsetTop >= menuBottomEdge) {\n const nodeBottomEdge = nodeRef.offsetTop + nodeRef.offsetHeight;\n menu.scrollTop += nodeBottomEdge - menuBottomEdge;\n }\n // If the node is above the visible area, scroll up to it.\n if (nodeRef.offsetTop < menu.scrollTop) {\n menu.scrollTop = nodeRef.offsetTop;\n }\n };\n\n return (\n <div className={styles.wrapper}>\n {input}\n {isDropdownOpen && dropdown()}\n </div>\n );\n}\n\nexport default TimeInput;\n","import React, {\n createContext,\n useState,\n useEffect,\n useContext,\n ReactNode,\n} from \"react\";\n\nimport { onBrowser } from \"../../helpers/onBrowser\";\nimport { AlertText } from \"../Alert\";\n\nimport { Toast } from \"./Toast\";\nimport { ToastOverlay } from \"./ToastOverlay\";\n\nlet id = 0;\nconst TOAST_DEFAULT_TIMEOUT = 5000;\n\nexport const TOAST_TYPES = {\n ERROR: 0,\n INFO: 1,\n SUCCESS: 2,\n WARNING: 3,\n} as const;\n\nexport type ToastType = (typeof TOAST_TYPES)[keyof typeof TOAST_TYPES];\n\ninterface ToastItem {\n id: number;\n type: ToastType;\n content: React.ReactNode;\n timeout?: number;\n going: boolean;\n shownTime: number;\n}\n\nfunction isHoveredOverToastOverlay(): boolean {\n const hovered = document.querySelectorAll(\":hover\");\n for (let i = 0; i < hovered.length; i++) {\n if (hovered[i].getAttribute(\"id\") === \"toast-overlay\") {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The below block allows us to export a ToastContext and cache it within the\n * node module registry without initializing it twice. If we initialize the\n * context twice, the context cached within the `ToastProvider` cached within\n * Confetti will be overridden by the one created within Kazoo...\n */\nexport function CreateOrUseExistingToastContext(\n initialContext: ToastContextType\n): React.Context<ToastContextType> {\n if (!onBrowser()) {\n return createContext<ToastContextType>(initialContext);\n }\n\n if (!window.kazoo) {\n // TODO: WT-24033 the window kazoo type is technically incorrect\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n window.kazoo = {} as any;\n }\n\n const context = window.kazoo.toastContext;\n if (context) {\n return context;\n }\n\n window.kazoo.toastContext = createContext<ToastContextType>(initialContext);\n return window.kazoo.toastContext;\n}\n\n// Add type definitions for the global window object\nconst placeholderFunction = (): never => {\n throw new Error(\n `You tried to call a Toast placeholder function, meaning the Toast hasn't been set in the context. Did you forget to setup the Toast provider? Or maybe you meant to mock this function?`\n );\n};\n\nexport interface ToastContextType {\n toasts: ToastItem[];\n error: (content: React.ReactNode) => void;\n info: (content: React.ReactNode, timeout?: number) => void;\n success: (content: React.ReactNode, timeout?: number) => void;\n warning: (content: React.ReactNode) => void;\n}\n\nconst ToastContext = CreateOrUseExistingToastContext({\n toasts: [],\n error: placeholderFunction,\n info: placeholderFunction,\n success: placeholderFunction,\n warning: placeholderFunction,\n});\n\n/**\n * @typedef {object} ToastSuite\n * @prop {(content?: React.ReactNode, timeout?: number) => void} success\n * @prop {(content?: React.ReactNode) => void} error\n * @prop {(content?: React.ReactNode) => void} warning\n * @prop {(content?: React.ReactNode, timeout?: number) => void} info\n */\n\n/**\n * @returns {ToastSuite} A suite of functions to call for displaying a popup Toast with text.\n */\nexport const useToast = (): ToastContextType => useContext(ToastContext);\n\nfunction addToast(\n type: ToastType,\n setToasts: React.Dispatch<React.SetStateAction<ToastItem[]>>,\n content: React.ReactNode,\n timeout?: number\n): void {\n setToasts((currentToasts) => [\n ...currentToasts,\n { id: id++, type, content, timeout, going: false, shownTime: Date.now() },\n ]);\n}\n\nfunction removeToast(\n setToasts: React.Dispatch<React.SetStateAction<ToastItem[]>>,\n toastId: number\n): void {\n setToasts((currentToasts) =>\n currentToasts.filter((toast) => toast.id !== toastId)\n );\n}\n\nfunction addSuccess(\n setToasts: React.Dispatch<React.SetStateAction<ToastItem[]>>,\n content: React.ReactNode,\n timeout?: number\n): void {\n addToast(TOAST_TYPES.SUCCESS, setToasts, content, timeout);\n}\n\nfunction addWarning(\n setToasts: React.Dispatch<React.SetStateAction<ToastItem[]>>,\n content: React.ReactNode\n): void {\n addToast(TOAST_TYPES.WARNING, setToasts, content);\n}\n\nfunction addError(\n setToasts: React.Dispatch<React.SetStateAction<ToastItem[]>>,\n content: React.ReactNode\n): void {\n addToast(TOAST_TYPES.ERROR, setToasts, content);\n}\n\nfunction addInfo(\n setToasts: React.Dispatch<React.SetStateAction<ToastItem[]>>,\n content: React.ReactNode,\n timeout?: number\n): void {\n addToast(TOAST_TYPES.INFO, setToasts, content, timeout);\n}\n\ninterface ToastProviderProps {\n children: ReactNode;\n defaultTimeout?: number;\n text?: AlertText;\n}\n\nexport function ToastProvider({\n children,\n defaultTimeout = TOAST_DEFAULT_TIMEOUT,\n text = undefined,\n}: ToastProviderProps): JSX.Element {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n\n useEffect(() => {\n // Ignore this if we're on the server\n if (!onBrowser()) {\n return;\n }\n // This is our timer that fires every 500ms and removes stale\n // toasts from the screen.\n const interval = setInterval(() => {\n const currentTime = Date.now();\n const mouseOrFocusOnOverlay = isHoveredOverToastOverlay();\n // For ensuring we don't needlessly update state\n let changed = false;\n const newToasts = toasts\n .filter((toast) => !toast.going)\n .map((toast) => {\n if (mouseOrFocusOnOverlay) {\n return toast;\n }\n if (toast.timeout) {\n if (currentTime - toast.shownTime > toast.timeout) {\n // Remove it if it's past the amount of time we want\n // to show the toast.\n toast.going = true;\n changed = true;\n }\n }\n return toast;\n });\n // Boost our shown time a bit if the user is hovering over the\n // toast so it doesn't go away immediately\n if (mouseOrFocusOnOverlay) {\n newToasts.forEach((_, i) => (newToasts[i].shownTime += 600));\n }\n // If any of our toasts were removed or changed, update the state\n if (changed || newToasts.length !== toasts.length) {\n setToasts(newToasts);\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }, [toasts]);\n\n return (\n <ToastContext.Provider\n value={{\n toasts,\n error: (content) => addError(setToasts, content),\n info: (content, timeout = defaultTimeout) =>\n addInfo(setToasts, content, timeout),\n success: (content, timeout = defaultTimeout) =>\n addSuccess(setToasts, content, timeout),\n warning: (content) => addWarning(setToasts, content),\n }}\n >\n <ToastOverlay>\n {toasts.map((toast) => {\n const props = {\n content: toast.content,\n text,\n dismiss: () => removeToast(setToasts, toast.id),\n going: toast.going,\n key: toast.id,\n timeout: toast.timeout,\n type: toast.type,\n };\n switch (toast.type) {\n case TOAST_TYPES.ERROR:\n return <Toast variant=\"warning\" {...props} />;\n case TOAST_TYPES.SUCCESS:\n return <Toast variant=\"success\" {...props} />;\n case TOAST_TYPES.WARNING:\n return <Toast variant=\"warning\" {...props} />;\n default:\n return <Toast variant=\"info\" {...props} />;\n }\n })}\n </ToastOverlay>\n {children}\n </ToastContext.Provider>\n );\n}\n","import React, { useContext, useRef } from \"react\";\n\nimport styles from \"./StatusBarChart.scss\";\n\nconst StateContext = React.createContext(null);\n\nexport function ChartContainer({ children, state }) {\n const svgRef = useRef();\n const ctxValue = { ...state, svgRef };\n return (\n <StateContext.Provider value={ctxValue}>\n <svg\n height=\"120px\"\n width=\"100%\"\n ref={svgRef}\n className={styles[\"chart\"]}\n data-testid=\"chart-container\"\n >\n {children}\n </svg>\n </StateContext.Provider>\n );\n}\n\nexport function useChartContext() {\n const context = useContext(StateContext);\n if (context === undefined) {\n throw new Error(\n \"useChartContext must be used within a StatusBarChart's StateProvider\"\n );\n } else {\n return context;\n }\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import React from \"react\";\n\n/** Data point shape for the chart */\nexport interface ChartDataPoint {\n /** Value to be displayed */\n value: number;\n /** Name of the data point */\n name: string;\n /** Any additional properties */\n [key: string]: any;\n}\n\ninterface ChartMargins {\n /** Top margin */\n top: number;\n /** Right margin */\n right: number;\n /** Bottom margin */\n bottom: number;\n /** Left margin */\n left: number;\n}\n\ninterface ChartDimensions {\n /** Width in pixels */\n width: number | null;\n /** Height in pixels */\n height: number | null;\n}\n\nexport interface ChartState {\n /** Chart data points */\n data: ChartDataPoint[];\n /** Description text */\n chartDescription: string;\n /** Label for Y axis */\n yAxisLabel: string;\n /** Custom tooltip renderer */\n tooltipContent?: null | ((args: { data: ChartDataPoint }) => JSX.Element);\n /** Chart margins */\n margin: ChartMargins;\n /** Chart dimensions */\n dimensions: ChartDimensions;\n}\n\nexport interface ChartContext extends ChartState {\n /** Reference to SVG element */\n svgRef: React.RefObject<SVGSVGElement>;\n}\n\ninterface ChartContainerProps {\n /** Child elements */\n children: React.ReactNode;\n /** Chart state */\n state: ChartState;\n}\n\nimport styles from \"./StandardBarChart.scss\";\n\nconst StateContext = React.createContext<ChartContext>({\n data: [],\n chartDescription: \"\",\n yAxisLabel: \"\",\n margin: { top: 0, right: 0, bottom: 0, left: 0 },\n dimensions: { width: 0, height: 0 },\n svgRef: { current: null },\n});\n\nexport function ChartContainer({ children, state }: ChartContainerProps) {\n const svgRef = React.useRef<SVGSVGElement | null>(null);\n return (\n <StateContext.Provider value={{ ...state, svgRef }}>\n <svg\n height=\"100%\"\n width=\"100%\"\n ref={svgRef}\n className={styles[\"chart\"]}\n data-testid=\"chart-container\"\n >\n {children}\n </svg>\n </StateContext.Provider>\n );\n}\n\nexport function useChartContext() {\n const context = React.useContext(StateContext);\n\n // istanbul ignore next - trivial noop and typeguard\n if (context === undefined) {\n throw new Error(\n \"useChartContext must be used within a StatusBarChart's StateProvider\"\n );\n }\n return context;\n}\n","import React from \"react\";\n\nimport { Card, TextArea } from \"@kazoohr/confetti\";\nimport { setState } from \"@kazoohr/helpers\";\n\n/**\n * This is a placeholder 😎\n */\nexport function AiAssistantComponent() {\n // TODO: AI assistant go here.\n const [value, setValue] = React.useState(\"\");\n return (\n <Card background=\"confetti\">\n Hello world! This is the AI assistant.\n <TextArea id=\"id\" value={value} onChange={setState(setValue)} />\n </Card>\n );\n}\n","import React from \"react\";\n\nimport { setStateValue } from \"@kazoohr/helpers\";\n\nconst CONFETTI_CSS = `$$CONFETTI_CSS_REPLACEME$$`;\n\n/**\n * This hook injects the Confetti CSS into the page and sets a flag in the\n * window object to indicate that the CSS has been injected. We do this so\n * that we can avoid a flash of unstyled content (FOUC); and to make the\n * process of shipping this component far simpler.\n */\nexport function useStyles() {\n const [isLoaded, setIsLoaded] = React.useState(false);\n React.useEffect(() => {\n // I could avoid this by updating our root `types`; but that would leave\n // evidence of this ugly hack elsewhere in a codebase that it's not even\n // needed for. So we'll just live with a lint rule ignore.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const windowAsAny = window as any;\n // istanbul ignore if - noop if the styles have already been injected\n if (windowAsAny._confettiStylesHaveBeenInjected) {\n setTimeout(setStateValue(setIsLoaded, true), 50);\n return;\n }\n const styles = document.createElement(\"style\");\n styles.innerHTML = CONFETTI_CSS;\n document.head.appendChild(styles);\n windowAsAny._confettiStylesHaveBeenInjected = true;\n setTimeout(setStateValue(setIsLoaded, true), 50);\n }, []);\n\n return {\n isLoaded,\n };\n}\n","import React from \"react\";\n\nimport { AiAssistantComponent } from \"./components/AiAssistantComponent\";\nimport { useStyles } from \"./useStyles\";\n\n/**\n * This function loads the CSS styles for Confetti (and anything else we styled\n * custom in this app) and injects them into the page. While it's doing that, we\n * show a very minimal loader.\n */\nexport function AiAssistant() {\n const { isLoaded } = useStyles();\n\n if (!isLoaded) {\n return null;\n }\n\n return <AiAssistantComponent />;\n}\n"],"names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","BRANDING_CLASSES","BRANDING_CLASS_VALUES","_BrandingUtilities","__publicField","className","classNames","content","v","BrandingUtilities","DEFAULT_TIMEZONE","t","module","this","r","o","$","y","M","u","D","S","_","w","O","h","dayjs","relativeTimePlugin","__assign","lowerCase","str","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","noCase","input","options","_a","splitRegexp","_b","stripRegexp","_c","transform","_d","delimiter","result","replace","start","end","re","pascalCaseTransform","index","firstChar","lowerChars","pascalCaseTransformMerge","pascalCase","camelCaseTransform","camelCaseTransformMerge","camelCase","upperCaseFirst","capitalCaseTransform","capitalCase","upperCase","constantCase","dotCase","headerCase","SUPPORTED_LOCALE","localeLowerCase","locale","lang","paramCase","pathCase","sentenceCaseTransform","sentenceCase","snakeCase","lowerCaseFirst","spongeCase","swapCase","lower","SMALL_WORDS","TOKENS","WHITESPACE","IS_MANUAL_CASE","ALPHANUMERIC_PATTERN","titleCase","token","localeUpperCase","isUpperCase","isLowerCase","dist","changeCase","lowerCase1","lowerCaseFirst1","require$$2","spongeCase1","require$$3","swapCase1","require$$4","titleCase1","require$$5","upperCase1","require$$6","upperCaseFirst1","require$$7","isUpperCase1","require$$8","isLowerCase1","require$$9","doNothing","setState","setStateValue","dayjsTz","utc","coalesce","dayjsTZ","hasOwn","classes","arg","argType","inner","Header","size","thick","ellipsisOverflow","wrap","HeaderTag","cx","styles","Text","color","paragraph","slim","maxChars","maxLines","textAlign","bold","wordBreak","elementProps","TagType","childrenToRender","addTitle","_objectWithoutPropertiesLoose","excluded","target","sourceKeys","_extends","_assertThisInitialized","_setPrototypeOf","_inheritsLoose","subClass","superClass","setPrototypeOf","z","A","reactIs_production_min","hasSymbol","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","hoistNonReactStatics_cjs","invariant","condition","message","Context","LOADABLE_SHARED","STATUS_PENDING","STATUS_RESOLVED","STATUS_REJECTED","resolveConstructor","ctor","withChunkExtractor","extractor","identity","createLoadable","_ref","_ref$defaultResolveCo","defaultResolveComponent","_render","onLoad","loadable","loadableConstructor","cache","_getCacheKey","resolve","Loadable","InnerLoadable","_React$Component","state","cacheKey","_this","_proto","cachedPromise","prevProps","prevState","nextState","callback","_this2","loadedModule","_this3","promise","_this4","_this$props","_this$props2","forwardedRef","propFallback","_this$state","loading","fallback","EnhancedInnerLoadable","lazy","_createLoadable","_createLoadable$1","loadable$1","lazy$1","loadable$2","lazy$2","asyncComponent","DEPRECATED_ICONS","IconMap","regular","icon","Icon","thin","filled","IconTypes","dataTestId","colors","variant","decorative","pointerEvents","sizeStyle","viewBox","getViewbox","decorativeProps","iconColor","EXTRA_LARGE_VIEWBOX_ICONS","LARGE_VIEWBOX_ICONS","SMALL_VIEWBOX_ICONS","EXTRA_SMALL_VIEWBOX_ICONS","VIEWBOX_SIZES","DEFAULT_COLOR","Loader","centered","horizontallyCentered","nowrapper","getSizeModifier","loaderClassName","wrapper","spinner","sizeMap","Spacer","orientation","Card","onClick","barColor","barBrandingClass","barLocation","withBorder","background","noShadow","noPadding","pinnedReason","pinnedDateText","withMarginBottom","wrapperProps","showBar","showPinnedBanner","isButton","buttonProps","barClassNames","inlineStyle","PinnedBannerCard","pinnedClassNames","pinnedDateClassNames","pinnedIconClassNames","pinnedHeader","fullWidth","getIconVariant","iconVariant","getVariantModifier","Button","disabled","iconAlignment","innerRef","linkElement","href","to","asLink","buttonClassName","iconVariantButton","linkTag","getLinkTag","url","getUrl","useLink","TagName","isAnchor","iconWrapperStyles","IconButton","iconSize","system","ariaLabel","title","iconButtonVariant","quantity","containerSize","quantityClasses","quantityLabel","PopperAsync","tabIndexableTags","ids","TabIndexVisibility","visible","id","elementSupportsTabIndex","Popover","closeOnClickAway","ignoreCloseOnClickAway","parent","isOpen","popoverComponent","onSetOpen","position","displayArrow","animate","arrowClassName","popperProps","renderInPortal","Popper","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","from","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","text","getStack","checkPropTypes_1","ReactIs","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","data","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propFullName","secret","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","entry","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","exports","findTabbableDescendants","tabbableNode","hidesContents","zeroSize","style","parentElement","focusable","isTabIndexNotNaN","nodeName","res","tabbable","tabIndex","isTabIndexNaN","focusManager","handleBlur","handleFocus","markForFocusLater","returnFocus","popWithoutFocus","setupScopedFocus","teardownScopedFocus","_tabbable","_tabbable2","_interopRequireDefault","obj","focusLaterElements","modalElement","needToFocus","el","toFocus","scopeTab","event","shiftKey","head","tail","checkSafari","isSafariDesktop","__DEV__","warning","len","argIndex","warning_1","canUseDOM","ExecutionEnvironment","safeHTMLElement","_exenv","_exenv2","EE","SafeHTMLElement","ariaAppHider","assertNodeList","setElement","validateElement","hide","show","documentNotReadyOrSSRTesting","resetForTesting","_warning","_warning2","_safeHTMLElement","globalElement","nodeList","selector","useElement","appElement","classList","dumpClassLists","htmlClassList","docBodyClassList","buffer","_x","incrementReference","poll","decrementReference","trackClass","classListRef","untrackClass","classString","_classCallCheck","instance","Constructor","PortalOpenInstances","openInstance","eventType","subscriber","portalOpenInstances","_portalOpenInstances","_portalOpenInstances2","before","after","instances","focusContent","bodyTrap","openInstances","_typeof","_createClass","defineProperties","protoProps","staticProps","_react","_react2","_propTypes","_propTypes2","_focusManager","_interopRequireWildcard","_scopeTab","_scopeTab2","_ariaAppHider","_classList","_safeHTMLElement2","newObj","_possibleConstructorReturn","call","_inherits","CLASS_NAMES","TAB_KEY","ESC_KEY","ariaHiddenInstances","ModalPortal","_Component","overlay","ariaHideApp","htmlOpenClassName","bodyOpenClassName","closesAt","which","additional","items","acc","_props","_props2","overlayClassName","defaultStyles","contentStyles","overlayStyles","componentWillMount","componentWillReceiveProps","nextProps","updater","componentWillUpdate","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","Modal_1","_reactDom","_reactDom2","_ModalPortal","_ModalPortal2","_reactLifecyclesCompat","portalClassName","isReact16","getCreatePortal","getParentElement","parentSelector","Modal","_temp","_ret","_len","_key","createPortal","portal","prevParent","nextParent","now","_Modal","_Modal2","onBrowser","ProfilePic","dimensions","user","grayscale","targetRef","image","imageToRender","wrapperSize","useDimensions","profilePicContainerStyle","profilePicStyle","initialsStyle","profilePicClassName","wrapperClass","picClassName","textContent","avatarUrl","avatar","image160","image70","image30","calculatedDimensions","setDimensions","handleResize","_arrayWithoutHoles","arr","arr2","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","_defineProperties","_typeof2","assertThisInitialized","_getPrototypeOf","_defineProperty","browser","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_e","_i","_s","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_objectWithoutProperties","objectWithoutPropertiesLoose","sourceSymbolKeys","toPrimitive","toPropertyKey","_arrayLikeToArray","arrayLikeToArray","_unsupportedIterableToArray","unsupportedIterableToArray","mergeDeep","output","isPlainObject","merge","sources","omit","other","compact","isModifier","camelize","pickDirectStyles","objectPropertiesWhitelist","styleKeys","isDirect","pickNestedStyles","keysToPick","camelizedKeysToPick","hoistModifierStylesRecursive","modifierKeysToPick","modifierKeys","subresult","ownKeys","enumerableOnly","sym","_objectSpread","defaultObjectPropsWhitelist","defaultPropsDecorator","PropsDecoratorContext","createContext","coerceSelection","select","objSelect","EMPTY","memoize","substyle","defaultStyle","mapEntry","selectHash","guessBaseClassName","firstKey","deriveClassNames","elementKeys","firstClassName","derivedClassNames","createSubstyle","propsDecorator","baseClassName","selectedKeys","collectElementStyles","fromStyle","collectSelectedStyles","styleProps","classNameSplit","mappedClassNames","singleClassName","propsForSpread","inline","useStyles","modifiers","useContext","useMemo","escapeRegex","PLACEHOLDERS","findPositionOfCapturingGroup","markup","parameterName","indexDisplay","indexId","combineRegExps","regExps","serializedRegexParser","regex","_serializedRegexParse","_serializedRegexParse2","regexString","regexFlags","countPlaceholders","count","emptyFn","iterateMentionsMarkup","markupIteratee","textIteratee","accOffset","captureGroupOffsets","currentPlainTextIndex","offset","mentionChildIndex","_config$mentionChildI","displayTransform","idPos","displayPos","display","substr","getPlainText","plainTextIndex","plainText","mapPlainTextIndex","indexInPlainText","inMarkupCorrection","substrPlainTextIndex","mentionPlainTextIndex","childIndex","lastMentionEndIndex","spliceString","insert","applyChangeToValue","plainTextValue","selectionStartBefore","selectionEndBefore","selectionEndAfter","oldPlainTextValue","lengthDelta","spliceStart","spliceEnd","mappedSpliceStart","mappedSpliceEnd","controlSpliceStart","controlSpliceEnd","willRemoveMention","newValue","controlPlainTextValue","findStartOfMentionInPlainText","foundMention","getMentions","mentions","getSuggestionHtmlId","countSuggestions","suggestions","results","getEndOfLastMention","lastMention","markupToRegex","escapedMarkup","charAfterDisplay","charAfterId","readConfigFromChildren","Children","_ref$props","coerceCapturingGroups","numberOfGroups","numberOfPlaceholders","makeMentionsMarkup","lettersDiacritics","removeAccents","formattedStr","letterDiacritics","normalizeString","getSubstringIndex","ignoreAccents","isIE","isNumber","rest","_excluded","createDefaultStyle","getModifiers","enhance","ComponentToWrap","DefaultStyleEnhancer","_generateComponentKey","usedKeys","Highlighter","selectionStart","selectionEnd","_ref$value","onCaretPositionChange","containerRef","_useState","useState","_useState2","setPosition","_useState3","_useState4","caretElement","setCaretElement","useEffect","notifyCaretPosition","offsetLeft","offsetTop","newPosition","caretPositionInMarkup","resultComponents","componentKeys","components","substringComponentKey","splitIndex","renderSubstring","mentionIteratee","getMentionComponentForMatch","string","renderHighlighterCaret","PropTypes","styled","Highlighter$1","Suggestion","focused","onMouseEnter","query","renderSuggestion","suggestion","renderContent","getDisplay","highlightedDisplay","renderHighlightedDisplay","styled$1","Suggestion$1","LoadingIndicator","defaultstyle","spinnerStyles","SuggestionsOverlay","_ref$suggestions","a11ySuggestionsListLabel","focusIndex","left","right","top","scrollFocusedIntoView","isLoading","isOpened","_ref$onSelect","onSelect","customSuggestionsContainer","onMouseDown","ulElement","setUlElement","scrollTop","_ulElement$children$f","bottom","_ulElement$getBoundin","topContainer","renderSuggestions","suggestionsToRender","accResults","_ref2","queryInfo","isFocused","getID","handleMouseEnter","renderLoadingIndicator","ev","styled$2","SuggestionsOverlay$1","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","makeTriggerRegex","trigger","allowSpaceInQuery","escapedTriggerChar","getDataProvider","KEY","isComposing","MentionsInput","_super","readOnly","singleLine","inputProps","inputRef","_this$state$suggestio","suggestionsNode","ReactDOM","_this$props3","_this$props4","_this$props$valueLink","currentDocument","newPlainTextValue","setSelectionAfterMentionChange","startOfMention","eventMock","suggestionsCount","delta","_this$state2","_Object$values$reduce","clickedSuggestion","caretPosition","_this$props5","suggestionsPortalHost","allowSuggestionsAboveCursor","forceSuggestionsAboveCursor","highlighter","caretOffsetParentRect","caretHeight","getComputedStyleLengthProp","viewportRelative","viewportHeight","viewportWidth","_left","_top","range","positionInValue","substringStartIndex","substring","querySequenceStart","querySequenceEnd","_this$props6","mentionChild","provideData","syncResult","queryId","_ref3","mentionsChild","_mentionsChild$props","appendSpaceOnAdd","onAdd","displayValue","newCaretPosition","_this$state3","_this$props7","markupStartIndex","markupEndIndex","pastedMentions","pastedData","nextPos","_this$props8","_this$state4","_this$props9","forElement","propertyName","length","isMobileSafari","styled$3","_ref4","MentionsInput$1","Mention","useUIDSeed","seedProps","uidPrefix","nonPrimitives","toString","prop","dashify","someString","anything","primitive","QuestionMarkTooltipIcon","tooltipIconRef","active","setActive","onMouseLeave","TooltipContent","hangLeft","tooltipClassName","Tooltip","showOnHover","uuid","tooltipId","useRef","hasIcon","handleClickOutside","handleTypeEscape","disappearOnHover","appearOnHover","ControlWrapper","numeric","numericText","helperText","helperButtonLabel","helperButtonClick","helperButtonPosition","inputId","label","maxLengthText","renderControl","required","outsideClick","optionalLabelText","tooltip","wrapperClassNames","generateUID","handleClick","labelClassNames","labelId","helperTextId","errorId","maxLength","maxLengthAbove","typed","safeToLocaleString","total","countString","helperRow","inputWrapper","numberOrString","TextAreaMentionSuggestion","userProfile","MAX_MENTION_SEARCH_LENGTH","TextArea","minRows","onMention","onChange","placeholder","speechBubble","mentionsPlaceholder","textAreaProps","mentionLinkRegex","formattedValue","comment","defaultMentionsPlaceholder","_id","handleOnMention","controlWrapperProps","search","mapUserProfileToMention","userProfileArray","Checkbox","checked","onIndeterminateChange","indeterminate","hasError","checkboxProps","inputClassNames","spanClassNames","handleChange","MAX_SAFE_INTEGER","argsTag","funcTag","genTag","mapTag","objectTag","promiseTag","setTag","weakMapTag","dataViewTag","reRegExpChar","reIsHostCtor","freeGlobal","global","freeSelf","root","freeExports","freeModule","moduleExports","getValue","isHostObject","overArg","func","funcProto","objectProto","coreJsData","maskSrcKey","uid","funcToString","objectToString","reIsNative","Buffer","propertyIsEnumerable","nativeIsBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","WeakMap","nonEnumShadows","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","baseGetTag","baseIsNative","isObject","isMasked","pattern","isFunction","getTag","Ctor","ctorString","isPrototype","proto","isArguments","isArrayLikeObject","isArrayLike","isLength","isObjectLike","isBuffer","stubFalse","isEmpty","tag","COLOR_MAP","Divider","EmployeeList","employees","showTitles","showSecondaryText","showDivider","heightLimited","openProfileInNewTab","disableProfileLink","profilePicIconOverride","footerComponent","listContainerStyle","EmployeeInfoWrapper","employee","useBlurHandlers","onBlur","closingTimeoutId","C","T","j","E","R","V","N","B","I","F","L","W","J","U","H","P","Y","G","IMPERATIVE_API","getScrollOffset","_Autocomplete","nodeRef","menu","menuBottomEdge","nodeBottomEdge","highlightedIndex","getItemValue","newIndex","rect","computedStyle","marginBottom","marginLeft","marginRight","eventHandlers","setStateCallback","onFocus","internal","external","isMultiSelect","buttonOpenLabel","buttonClosedLabel","selectIcon","onClickHandler","renderInput","popperEnabled","wrapperStyle","open","inputComponent","componentStyles","itemNode","Autocomplete","LARGE_ARRAY_SIZE","HASH_UNDEFINED","symbolTag","reIsUint","apply","thisArg","arrayIncludes","array","baseIndexOf","arrayMap","iteratee","arrayPush","baseFindIndex","predicate","fromIndex","fromRight","baseIsNaN","baseTimes","cacheHas","arrayProto","Symbol","getPrototype","splice","spreadableSymbol","nativeGetSymbols","nativeMax","nativeCreate","Hash","entries","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","arrayLikeKeys","inherited","skipIndexes","isIndex","eq","baseDifference","comparator","includes","isCommon","valuesLength","outer","computed","valuesIndex","baseFlatten","depth","isStrict","isFlattenable","baseGetAllKeys","keysFunc","symbolsFunc","baseKeysIn","nativeKeysIn","isProto","basePick","basePickBy","baseRest","otherArgs","getAllKeysIn","keysIn","getSymbolsIn","map","isKeyable","getSymbols","stubArray","toKey","lodash_omit","MultiSelectItem","Pill","listShowable","hoverContent","users","onClose","avatarUser","onKeyPress","extra","isHovering","setIsHovering","variantClassName","hasHover","brandingStyle","hoverStyle","pillStyles","iconStyle","setFocused","blurHandler","childFocusHandler","setClicked","focusHandler","clicked","onKeyDown","evt","containerProps","PillContent","escapeRegEx","NestedItem","originalItems","selectedItems","onSelectionChange","expandedItems","onItemExpanded","isParentSelected","nestedData","behaveAsAFilter","getParent","isOneOfMyGrandChildrenSelected","getArrayOfDescendantItems","descendant","selectedItem","getNearestSelectedAncestor","cursor","getArrayOfAncestorIndexes","descendants","toTraverse","currentItem","isItemSelectable","isIndeterminate","originalItem","directParent","nearestSelectedAncestor","ancestorsIndexes","shouldCompute","ancestorIdx","dontSelect","toDelete","toPush","ancestor","sItem","isSelected","createElement","MultiSelectSuggestion","isIndeterminateFn","hasChildren","howManyChildrenSelected","isSelectedFn","displayChildren","childrenRender","renderText","currentValue","idx","boldText","VARIANTS","isHighlighted","currentInputValue","checkbox","onDisplayChildrenChange","listId","menuProps","itemId","pillClassName","wrapContent","renderItem","iconButton","isToday","timezone","getDefaultTime","amLabel","pmLabel","helper","rounded","hours","minutes","period","AM_LABEL","PM_LABEL","LABELS","CreateOrUseExistingToastContext","initialContext","placeholderFunction","xhtml","namespaces","namespace","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selection_select","groups","subgroups","group","subgroup","subnode","Selection","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","childFirst","selection_selectChild","filter","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","datum","next","constant$1","bindIndex","enter","exit","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","selection_data","bind","constant","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","selection","groups0","groups1","m0","m1","merges","group0","group1","selection_order","selection_sort","compare","ascending","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","priority","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","selection_lower","selection_append","create","constantNull","selection_insert","remove","selection_remove","selection_cloneShallow","clone","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","parseTypenames","typenames","onRemove","typename","on","selection_on","dispatchEvent","params","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","selection_selection","define","constructor","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","channels","color_formatHex","color_formatHsl","color_formatRgb","hslConvert","rgbn","Rgb","rgba","hsla","rgbConvert","rgb","opacity","rgb_formatHex","rgb_formatRgb","hex","Hsl","min","max","hsl","m2","hsl2rgb","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","colorRgb","interpolateNumber","reA","reB","zero","one","interpolateString","bi","am","bm","bs","number","degrees","decompose","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","scale","interpolateTransformCss","interpolateTransformSvg","noop","dispatch","Dispatch","types","get","set","copy","that","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","t0","t1","t2","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","timing","schedules","tween","stop","tick","interrupt","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolate","value1","string00","string1","interpolate0","string0","string10","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","styleNull","styleMaybeRemove","listener0","transition_style","styleInterpolate","styleTween","transition_styleTween","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","reject","cancel","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","AiAssistantComponent","setValue","CONFETTI_CSS","isLoaded","setIsLoaded","windowAsAny","AiAssistant"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASa,MAAIA,IAAEC,IAAiBC,IAAE,OAAO,IAAI,eAAe,GAAEC,IAAE,OAAO,IAAI,gBAAgB,GAAEC,IAAE,OAAO,UAAU,gBAAeC,IAAEL,EAAE,mDAAmD,mBAAkBM,IAAE,EAAC,KAAI,IAAG,KAAI,IAAG,QAAO,IAAG,UAAS,GAAE;AAClP,WAASC,EAAEC,GAAEC,GAAEC,GAAE;AAAC,QAAIC,GAAEC,IAAE,CAAE,GAACC,IAAE,MAAK,IAAE;AAAK,IAASH,MAAT,WAAaG,IAAE,KAAGH,IAAYD,EAAE,QAAX,WAAiBI,IAAE,KAAGJ,EAAE,MAAcA,EAAE,QAAX,WAAiB,IAAEA,EAAE;AAAK,SAAIE,KAAKF,EAAE,CAAAL,EAAE,KAAKK,GAAEE,CAAC,KAAG,CAACL,EAAE,eAAeK,CAAC,MAAIC,EAAED,CAAC,IAAEF,EAAEE,CAAC;AAAG,QAAGH,KAAGA,EAAE,aAAa,MAAIG,KAAKF,IAAED,EAAE,cAAaC,EAAE,CAASG,EAAED,CAAC,MAAZ,WAAgBC,EAAED,CAAC,IAAEF,EAAEE,CAAC;AAAG,WAAM,EAAC,UAAST,GAAE,MAAKM,GAAE,KAAIK,GAAE,KAAI,GAAE,OAAMD,GAAE,QAAOP,EAAE,QAAO;AAAA,EAAC;AAAC,SAAAS,cAAiBX,GAAEW,GAAW,MAACP,GAAEO,GAAA,OAAaP;;;;;;;;;;;;;;wBCEtW,QAAQ,IAAI,aAAa,gBAC1B,WAAW;AAGd,QAAIQ,IAAQd,IAMRe,IAAqB,OAAO,IAAI,eAAe,GAC/CC,IAAoB,OAAO,IAAI,cAAc,GAC7CC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAAyB,OAAO,IAAI,mBAAmB,GACvDC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAAqB,OAAO,IAAI,eAAe,GAC/CC,IAAyB,OAAO,IAAI,mBAAmB,GACvDC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAA2B,OAAO,IAAI,qBAAqB,GAC3DC,IAAkB,OAAO,IAAI,YAAY,GACzCC,IAAkB,OAAO,IAAI,YAAY,GACzCC,IAAuB,OAAO,IAAI,iBAAiB,GACnDC,IAAwB,OAAO,UAC/BC,IAAuB;AAC3B,aAASC,EAAcC,GAAe;AACpC,UAAIA,MAAkB,QAAQ,OAAOA,KAAkB;AACrD,eAAO;AAGT,UAAIC,IAAgBJ,KAAyBG,EAAcH,CAAqB,KAAKG,EAAcF,CAAoB;AAEvH,aAAI,OAAOG,KAAkB,aACpBA,IAGF;AAAA,IACT;AAEA,QAAIC,IAAuBnB,EAAM;AAEjC,aAASoB,EAAMC,GAAQ;AAEnB;AACE,iBAASC,IAAQ,UAAU,QAAQC,KAAO,IAAI,MAAMD,IAAQ,IAAIA,IAAQ,IAAI,CAAC,GAAGE,KAAQ,GAAGA,KAAQF,GAAOE;AACxG,UAAAD,GAAKC,KAAQ,CAAC,IAAI,UAAUA,EAAK;AAGnC,QAAAC,EAAa,SAASJ,GAAQE,EAAI;AAAA,MACxC;AAAA,IAEA;AAEA,aAASE,EAAaC,GAAOL,GAAQE,IAAM;AAGzC;AACE,YAAII,KAAyBR,EAAqB,wBAC9CS,KAAQD,GAAuB,iBAAkB;AAErD,QAAIC,OAAU,OACZP,KAAU,MACVE,KAAOA,GAAK,OAAO,CAACK,EAAK,CAAC;AAI5B,YAAIC,KAAiBN,GAAK,IAAI,SAAUO,IAAM;AAC5C,iBAAO,OAAOA,EAAI;AAAA,QACxB,CAAK;AAED,QAAAD,GAAe,QAAQ,cAAcR,CAAM,GAI3C,SAAS,UAAU,MAAM,KAAK,QAAQK,CAAK,GAAG,SAASG,EAAc;AAAA,MACzE;AAAA,IACA;AAIA,QAAIE,IAAiB,IACjBC,IAAqB,IACrBC,IAA0B,IAE1BC,IAAqB,IAIrBC,IAAqB,IAErBC;AAGF,IAAAA,IAAyB,OAAO,IAAI,wBAAwB;AAG9D,aAASC,EAAmBC,GAAM;AAUhC,aATI,UAAOA,KAAS,YAAY,OAAOA,KAAS,cAK5CA,MAASnC,KAAuBmC,MAASjC,KAAuB8B,KAAuBG,MAASlC,KAA0BkC,MAAS7B,KAAuB6B,MAAS5B,KAA4BwB,KAAuBI,MAASzB,KAAwBkB,KAAmBC,KAAuBC,KAIjS,OAAOK,KAAS,YAAYA,MAAS,SACnCA,EAAK,aAAa1B,KAAmB0B,EAAK,aAAa3B,KAAmB2B,EAAK,aAAahC,KAAuBgC,EAAK,aAAa/B,KAAsB+B,EAAK,aAAa9B;AAAA;AAAA;AAAA;AAAA,MAIjL8B,EAAK,aAAaF,KAA0BE,EAAK,gBAAgB;AAAA,IAMrE;AAEA,aAASC,EAAeC,GAAWC,GAAWC,IAAa;AACzD,UAAIC,KAAcH,EAAU;AAE5B,UAAIG;AACF,eAAOA;AAGT,UAAIC,KAAeH,EAAU,eAAeA,EAAU,QAAQ;AAC9D,aAAOG,OAAiB,KAAKF,KAAc,MAAME,KAAe,MAAMF;AAAA,IACvE;AAGD,aAASG,EAAeP,GAAM;AAC5B,aAAOA,EAAK,eAAe;AAAA,IAC5B;AAGD,aAASQ,EAAyBR,GAAM;AACtC,UAAIA,KAAQ;AAEV,eAAO;AAST,UALM,OAAOA,EAAK,OAAQ,YACtBlB,EAAM,mHAAwH,GAI9H,OAAOkB,KAAS;AAClB,eAAOA,EAAK,eAAeA,EAAK,QAAQ;AAG1C,UAAI,OAAOA,KAAS;AAClB,eAAOA;AAGT,cAAQA,GAAI;AAAA,QACV,KAAKnC;AACH,iBAAO;AAAA,QAET,KAAKD;AACH,iBAAO;AAAA,QAET,KAAKG;AACH,iBAAO;AAAA,QAET,KAAKD;AACH,iBAAO;AAAA,QAET,KAAKK;AACH,iBAAO;AAAA,QAET,KAAKC;AACH,iBAAO;AAAA,MAEb;AAEE,UAAI,OAAO4B,KAAS;AAClB,gBAAQA,EAAK,UAAQ;AAAA,UACnB,KAAK/B;AACH,gBAAIwC,IAAUT;AACd,mBAAOO,EAAeE,CAAO,IAAI;AAAA,UAEnC,KAAKzC;AACH,gBAAI0C,KAAWV;AACf,mBAAOO,EAAeG,GAAS,QAAQ,IAAI;AAAA,UAE7C,KAAKxC;AACH,mBAAO+B,EAAeD,GAAMA,EAAK,QAAQ,YAAY;AAAA,UAEvD,KAAK3B;AACH,gBAAIsC,KAAYX,EAAK,eAAe;AAEpC,mBAAIW,OAAc,OACTA,KAGFH,EAAyBR,EAAK,IAAI,KAAK;AAAA,UAEhD,KAAK1B,GACH;AACE,gBAAIsC,KAAgBZ,GAChBa,KAAUD,GAAc,UACxBE,KAAOF,GAAc;AAEzB,gBAAI;AACF,qBAAOJ,EAAyBM,GAAKD,EAAO,CAAC;AAAA,YAC9C,QAAW;AACV,qBAAO;AAAA,YACnB;AAAA,UACA;AAAA,QAGA;AAGE,aAAO;AAAA,IACT;AAEA,QAAIE,IAAS,OAAO,QAMhBC,IAAgB,GAChBC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC;AAEJ,aAASC,IAAc;AAAA,IAAA;AAEvB,IAAAA,EAAY,qBAAqB;AACjC,aAASC,IAAc;AACrB;AACE,YAAIT,MAAkB,GAAG;AAEvB,UAAAC,IAAU,QAAQ,KAClBC,IAAW,QAAQ,MACnBC,IAAW,QAAQ,MACnBC,IAAY,QAAQ,OACpBC,IAAY,QAAQ,OACpBC,IAAqB,QAAQ,gBAC7BC,IAAe,QAAQ;AAEvB,cAAIG,IAAQ;AAAA,YACV,cAAc;AAAA,YACd,YAAY;AAAA,YACZ,OAAOF;AAAA,YACP,UAAU;AAAA,UAClB;AAEM,iBAAO,iBAAiB,SAAS;AAAA,YAC/B,MAAME;AAAA,YACN,KAAKA;AAAA,YACL,MAAMA;AAAA,YACN,OAAOA;AAAA,YACP,OAAOA;AAAA,YACP,gBAAgBA;AAAA,YAChB,UAAUA;AAAA,UAClB,CAAO;AAAA,QAEP;AAEI,QAAAV;AAAA,MACJ;AAAA,IACA;AACA,aAASW,IAAe;AACtB;AAGE,YAFAX,KAEIA,MAAkB,GAAG;AAEvB,cAAIU,IAAQ;AAAA,YACV,cAAc;AAAA,YACd,YAAY;AAAA,YACZ,UAAU;AAAA,UAClB;AAEM,iBAAO,iBAAiB,SAAS;AAAA,YAC/B,KAAKX,EAAO,CAAE,GAAEW,GAAO;AAAA,cACrB,OAAOT;AAAA,YACjB,CAAS;AAAA,YACD,MAAMF,EAAO,CAAE,GAAEW,GAAO;AAAA,cACtB,OAAOR;AAAA,YACjB,CAAS;AAAA,YACD,MAAMH,EAAO,CAAE,GAAEW,GAAO;AAAA,cACtB,OAAOP;AAAA,YACjB,CAAS;AAAA,YACD,OAAOJ,EAAO,CAAE,GAAEW,GAAO;AAAA,cACvB,OAAON;AAAA,YACjB,CAAS;AAAA,YACD,OAAOL,EAAO,CAAE,GAAEW,GAAO;AAAA,cACvB,OAAOL;AAAA,YACjB,CAAS;AAAA,YACD,gBAAgBN,EAAO,CAAE,GAAEW,GAAO;AAAA,cAChC,OAAOJ;AAAA,YACjB,CAAS;AAAA,YACD,UAAUP,EAAO,CAAE,GAAEW,GAAO;AAAA,cAC1B,OAAOH;AAAA,YACR,CAAA;AAAA,UACT,CAAO;AAAA,QAEP;AAEI,QAAIP,IAAgB,KAClBlC,EAAM,8EAAmF;AAAA,MAE/F;AAAA,IACA;AAEA,QAAI8C,IAAyB/C,EAAqB,wBAC9CgD;AACJ,aAASC,EAA8BC,GAAMC,GAAQC,IAAS;AAC5D;AACE,YAAIJ,MAAW;AAEb,cAAI;AACF,kBAAM,MAAO;AAAA,UACd,SAAQK,IAAG;AACV,gBAAIC,KAAQD,GAAE,MAAM,KAAM,EAAC,MAAM,cAAc;AAC/C,YAAAL,IAASM,MAASA,GAAM,CAAC,KAAK;AAAA,UACtC;AAII,eAAO;AAAA,IAAON,IAASE;AAAA,MAC3B;AAAA,IACA;AACA,QAAIK,KAAU,IACVC;AAEJ;AACE,UAAIC,KAAkB,OAAO,WAAY,aAAa,UAAU;AAChE,MAAAD,IAAsB,IAAIC,GAAiB;AAAA,IAC7C;AAEA,aAASC,EAA6BC,GAAIC,GAAW;AAEnD,UAAK,CAACD,KAAMJ;AACV,eAAO;AAGT;AACE,YAAIM,KAAQL,EAAoB,IAAIG,CAAE;AAEtC,YAAIE,OAAU;AACZ,iBAAOA;AAAA,MAEb;AAEE,UAAIC;AACJ,MAAAP,KAAU;AACV,UAAIQ,KAA4B,MAAM;AAEtC,YAAM,oBAAoB;AAC1B,UAAIC;AAGF,MAAAA,KAAqBjB,EAAuB,SAG5CA,EAAuB,UAAU,MACjCH,EAAa;AAGf,UAAI;AAEF,YAAIgB,GAAW;AAEb,cAAIK,KAAO,WAAY;AACrB,kBAAM,MAAO;AAAA,UACrB;AAWM,cARA,OAAO,eAAeA,GAAK,WAAW,SAAS;AAAA,YAC7C,KAAK,WAAY;AAGf,oBAAM,MAAO;AAAA,YACvB;AAAA,UACA,CAAO,GAEG,OAAO,WAAY,YAAY,QAAQ,WAAW;AAGpD,gBAAI;AACF,sBAAQ,UAAUA,IAAM,EAAE;AAAA,YAC3B,SAAQZ,IAAG;AACV,cAAAS,KAAUT;AAAA,YACpB;AAEQ,oBAAQ,UAAUM,GAAI,CAAA,GAAIM,EAAI;AAAA,UACtC,OAAa;AACL,gBAAI;AACF,cAAAA,GAAK,KAAM;AAAA,YACZ,SAAQZ,IAAG;AACV,cAAAS,KAAUT;AAAA,YACpB;AAEQ,YAAAM,EAAG,KAAKM,GAAK,SAAS;AAAA,UAC9B;AAAA,QACA,OAAW;AACL,cAAI;AACF,kBAAM,MAAO;AAAA,UACd,SAAQZ,IAAG;AACV,YAAAS,KAAUT;AAAA,UAClB;AAEM,UAAAM,EAAI;AAAA,QACV;AAAA,MACG,SAAQO,IAAQ;AAEf,YAAIA,MAAUJ,MAAW,OAAOI,GAAO,SAAU,UAAU;AAQzD,mBALIC,KAAcD,GAAO,MAAM,MAAM;AAAA,CAAI,GACrCE,IAAeN,GAAQ,MAAM,MAAM;AAAA,CAAI,GACvCO,IAAIF,GAAY,SAAS,GACzB7F,IAAI8F,EAAa,SAAS,GAEvBC,KAAK,KAAK/F,KAAK,KAAK6F,GAAYE,CAAC,MAAMD,EAAa9F,CAAC;AAO1D,YAAAA;AAGF,iBAAO+F,KAAK,KAAK/F,KAAK,GAAG+F,KAAK/F;AAG5B,gBAAI6F,GAAYE,CAAC,MAAMD,EAAa9F,CAAC,GAAG;AAMtC,kBAAI+F,MAAM,KAAK/F,MAAM;AACnB;AAKE,sBAJA+F,KACA/F,KAGIA,IAAI,KAAK6F,GAAYE,CAAC,MAAMD,EAAa9F,CAAC,GAAG;AAE/C,wBAAIgG,KAAS;AAAA,IAAOH,GAAYE,CAAC,EAAE,QAAQ,YAAY,MAAM;AAK7D,2BAAIV,EAAG,eAAeW,GAAO,SAAS,aAAa,MACjDA,KAASA,GAAO,QAAQ,eAAeX,EAAG,WAAW,IAIjD,OAAOA,KAAO,cAChBH,EAAoB,IAAIG,GAAIW,EAAM,GAK/BA;AAAA,kBACvB;AAAA,uBACqBD,KAAK,KAAK/F,KAAK;AAG1B;AAAA,YACV;AAAA,QAEA;AAAA,MACA,UAAY;AACR,QAAAiF,KAAU,IAGRR,EAAuB,UAAUiB,IACjClB,EAAc,GAGhB,MAAM,oBAAoBiB;AAAA,MAC3B;AAGD,UAAIb,KAAOS,IAAKA,EAAG,eAAeA,EAAG,OAAO,IACxCY,KAAiBrB,KAAOD,EAA8BC,EAAI,IAAI;AAGhE,aAAI,OAAOS,KAAO,cAChBH,EAAoB,IAAIG,GAAIY,EAAc,GAIvCA;AAAA,IACT;AACA,aAASC,GAA+Bb,GAAIR,GAAQC,IAAS;AAEzD,aAAOM,EAA6BC,GAAI,EAAK;AAAA,IAEjD;AAEA,aAASc,GAAgBC,GAAW;AAClC,UAAIC,IAAYD,EAAU;AAC1B,aAAO,CAAC,EAAEC,KAAaA,EAAU;AAAA,IACnC;AAEA,aAASC,GAAqCzD,GAAMgC,GAAQC,IAAS;AAEnE,UAAIjC,KAAQ;AACV,eAAO;AAGT,UAAI,OAAOA,KAAS;AAEhB,eAAOuC,EAA6BvC,GAAMsD,GAAgBtD,CAAI,CAAC;AAInE,UAAI,OAAOA,KAAS;AAClB,eAAO8B,EAA8B9B,CAAI;AAG3C,cAAQA,GAAI;AAAA,QACV,KAAK7B;AACH,iBAAO2D,EAA8B,UAAU;AAAA,QAEjD,KAAK1D;AACH,iBAAO0D,EAA8B,cAAc;AAAA,MACzD;AAEE,UAAI,OAAO9B,KAAS;AAClB,gBAAQA,EAAK,UAAQ;AAAA,UACnB,KAAK9B;AACH,mBAAOmF,GAA+BrD,EAAK,MAAM;AAAA,UAEnD,KAAK3B;AAEH,mBAAOoF,GAAqCzD,EAAK,MAAMgC,GAAQC,EAAO;AAAA,UAExE,KAAK3D,GACH;AACE,gBAAIsC,KAAgBZ,GAChBa,KAAUD,GAAc,UACxBE,KAAOF,GAAc;AAEzB,gBAAI;AAEF,qBAAO6C,GAAqC3C,GAAKD,EAAO,GAAGmB,GAAQC,EAAO;AAAA,YAC3E,QAAW;AAAA,YAAA;AAAA,UACtB;AAAA,QACA;AAGE,aAAO;AAAA,IACT;AAEA,QAAIyB,KAAiB,OAAO,UAAU,gBAElCC,KAAqB,CAAE,GACvBtE,KAAyBR,EAAqB;AAElD,aAAS+E,GAA8BC,GAAS;AAE5C,UAAIA,GAAS;AACX,YAAIC,IAAQD,EAAQ,QAChBvE,KAAQmE,GAAqCI,EAAQ,MAAMA,EAAQ,SAASC,IAAQA,EAAM,OAAO,IAAI;AACzG,QAAAzE,GAAuB,mBAAmBC,EAAK;AAAA,MACrD;AACM,QAAAD,GAAuB,mBAAmB,IAAI;AAAA,IAGpD;AAEA,aAAS0E,GAAeC,GAAWC,GAAQC,IAAUC,IAAeN,IAAS;AAC3E;AAEE,YAAIO,KAAM,SAAS,KAAK,KAAKV,EAAc;AAE3C,iBAASW,MAAgBL;AACvB,cAAII,GAAIJ,GAAWK,EAAY,GAAG;AAChC,gBAAIC,KAAU;AAId,gBAAI;AAGF,kBAAI,OAAON,EAAUK,EAAY,KAAM,YAAY;AAEjD,oBAAIE,IAAM,OAAOJ,MAAiB,iBAAiB,OAAOD,KAAW,YAAYG,KAAe,+FAAoG,OAAOL,EAAUK,EAAY,IAAI,iGAAsG;AAC3U,sBAAAE,EAAI,OAAO,uBACLA;AAAA,cAClB;AAEU,cAAAD,KAAUN,EAAUK,EAAY,EAAEJ,GAAQI,IAAcF,IAAeD,IAAU,MAAM,8CAA8C;AAAA,YACtI,SAAQM,GAAI;AACX,cAAAF,KAAUE;AAAA,YACpB;AAEQ,YAAIF,MAAW,EAAEA,cAAmB,WAClCV,GAA8BC,EAAO,GAErC/E,EAAM,4RAAqTqF,MAAiB,eAAeD,IAAUG,IAAc,OAAOC,EAAO,GAEjYV,GAA8B,IAAI,IAGhCU,cAAmB,SAAS,EAAEA,GAAQ,WAAWX,QAGnDA,GAAmBW,GAAQ,OAAO,IAAI,IACtCV,GAA8BC,EAAO,GAErC/E,EAAM,sBAAsBoF,IAAUI,GAAQ,OAAO,GAErDV,GAA8B,IAAI;AAAA,UAE5C;AAAA,MAEA;AAAA,IACA;AAEA,QAAIa,KAAc,MAAM;AAExB,aAASC,GAAQtH,GAAG;AAClB,aAAOqH,GAAYrH,CAAC;AAAA,IACtB;AAYA,aAASuH,GAASC,GAAO;AACvB;AAEE,YAAIC,IAAiB,OAAO,UAAW,cAAc,OAAO,aACxD7E,KAAO6E,KAAkBD,EAAM,OAAO,WAAW,KAAKA,EAAM,YAAY,QAAQ;AACpF,eAAO5E;AAAA,MACX;AAAA,IACC;AAGD,aAAS8E,GAAkBF,GAAO;AAE9B,UAAI;AACF,eAAAG,GAAmBH,CAAK,GACjB;AAAA,MACR,QAAW;AACV,eAAO;AAAA,MACb;AAAA,IAEA;AAEA,aAASG,GAAmBH,GAAO;AAwBjC,aAAO,KAAKA;AAAA,IACd;AACA,aAASI,GAAuBJ,GAAO;AAEnC,UAAIE,GAAkBF,CAAK;AACzB,eAAA9F,EAAM,mHAAwH6F,GAASC,CAAK,CAAC,GAEtIG,GAAmBH,CAAK;AAAA,IAGrC;AAEA,QAAIK,KAAoBpG,EAAqB,mBACzCqG,KAAiB;AAAA,MACnB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,UAAU;AAAA,IACX,GACGC,IACAC;AAOJ,aAASC,GAAYC,GAAQ;AAEzB,UAAI5B,GAAe,KAAK4B,GAAQ,KAAK,GAAG;AACtC,YAAIC,IAAS,OAAO,yBAAyBD,GAAQ,KAAK,EAAE;AAE5D,YAAIC,KAAUA,EAAO;AACnB,iBAAO;AAAA,MAEf;AAGE,aAAOD,EAAO,QAAQ;AAAA,IACxB;AAEA,aAASE,GAAYF,GAAQ;AAEzB,UAAI5B,GAAe,KAAK4B,GAAQ,KAAK,GAAG;AACtC,YAAIC,IAAS,OAAO,yBAAyBD,GAAQ,KAAK,EAAE;AAE5D,YAAIC,KAAUA,EAAO;AACnB,iBAAO;AAAA,MAEf;AAGE,aAAOD,EAAO,QAAQ;AAAA,IACxB;AAEA,aAASG,GAAqCH,GAAQI,GAAM;AAExD,MAAI,OAAOJ,EAAO,OAAQ,YAAYL,GAAkB;AAAA,IAU5D;AAEA,aAASU,GAA2BjE,GAAOrB,GAAa;AACtD;AACE,YAAIuF,KAAwB,WAAY;AACtC,UAAKT,OACHA,KAA6B,IAE7BrG,EAAM,6OAA4PuB,CAAW;AAAA,QAEhR;AAED,QAAAuF,GAAsB,iBAAiB,IACvC,OAAO,eAAelE,GAAO,OAAO;AAAA,UAClC,KAAKkE;AAAA,UACL,cAAc;AAAA,QACpB,CAAK;AAAA,MACL;AAAA,IACA;AAEA,aAASC,GAA2BnE,GAAOrB,GAAa;AACtD;AACE,YAAIyF,KAAwB,WAAY;AACtC,UAAKV,OACHA,KAA6B,IAE7BtG,EAAM,6OAA4PuB,CAAW;AAAA,QAEhR;AAED,QAAAyF,GAAsB,iBAAiB,IACvC,OAAO,eAAepE,GAAO,OAAO;AAAA,UAClC,KAAKoE;AAAA,UACL,cAAc;AAAA,QACpB,CAAK;AAAA,MACL;AAAA,IACA;AAuBA,QAAIC,KAAe,SAAU/F,GAAMgG,GAAKC,IAAKP,IAAM1D,IAAQ8B,IAAOpC,IAAO;AACvE,UAAImC,KAAU;AAAA;AAAA,QAEZ,UAAUlG;AAAA;AAAA,QAEV,MAAMqC;AAAA,QACN,KAAKgG;AAAA,QACL,KAAKC;AAAA,QACL,OAAOvE;AAAA;AAAA,QAEP,QAAQoC;AAAA,MACT;AAOC,aAAAD,GAAQ,SAAS,IAKjB,OAAO,eAAeA,GAAQ,QAAQ,aAAa;AAAA,QACjD,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,MACb,CAAK,GAED,OAAO,eAAeA,IAAS,SAAS;AAAA,QACtC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO6B;AAAA,MACb,CAAK,GAGD,OAAO,eAAe7B,IAAS,WAAW;AAAA,QACxC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO7B;AAAA,MACb,CAAK,GAEG,OAAO,WACT,OAAO,OAAO6B,GAAQ,KAAK,GAC3B,OAAO,OAAOA,EAAO,IAIlBA;AAAA,IACR;AAQD,aAASqC,GAAOlG,GAAMsF,GAAQa,IAAUnE,IAAQ0D,IAAM;AACpD;AACE,YAAIU,IAEA1E,KAAQ,CAAE,GACVsE,KAAM,MACNC,IAAM;AAOV,QAAIE,OAAa,WAEbnB,GAAuBmB,EAAQ,GAGjCH,KAAM,KAAKG,KAGTX,GAAYF,CAAM,MAElBN,GAAuBM,EAAO,GAAG,GAGnCU,KAAM,KAAKV,EAAO,MAGhBD,GAAYC,CAAM,MACpBW,IAAMX,EAAO,KACbG,GAAqCH,GAAQI,EAAI;AAInD,aAAKU,MAAYd;AACf,UAAI5B,GAAe,KAAK4B,GAAQc,EAAQ,KAAK,CAAClB,GAAe,eAAekB,EAAQ,MAClF1E,GAAM0E,EAAQ,IAAId,EAAOc,EAAQ;AAKrC,YAAIpG,KAAQA,EAAK,cAAc;AAC7B,cAAIqG,IAAerG,EAAK;AAExB,eAAKoG,MAAYC;AACf,YAAI3E,GAAM0E,EAAQ,MAAM,WACtB1E,GAAM0E,EAAQ,IAAIC,EAAaD,EAAQ;AAAA,QAGjD;AAEI,YAAIJ,MAAOC,GAAK;AACd,cAAI5F,IAAc,OAAOL,KAAS,aAAaA,EAAK,eAAeA,EAAK,QAAQ,YAAYA;AAE5F,UAAIgG,MACFL,GAA2BjE,IAAOrB,CAAW,GAG3C4F,KACFJ,GAA2BnE,IAAOrB,CAAW;AAAA,QAErD;AAEI,eAAO0F,GAAa/F,GAAMgG,IAAKC,GAAKP,IAAM1D,IAAQiD,GAAkB,SAASvD,EAAK;AAAA,MACtF;AAAA,IACA;AAEA,QAAI4E,KAAsBzH,EAAqB,mBAC3C0H,KAA2B1H,EAAqB;AAEpD,aAAS2H,GAAgC3C,GAAS;AAE9C,UAAIA,GAAS;AACX,YAAIC,IAAQD,EAAQ,QAChBvE,KAAQmE,GAAqCI,EAAQ,MAAMA,EAAQ,SAASC,IAAQA,EAAM,OAAO,IAAI;AACzG,QAAAyC,GAAyB,mBAAmBjH,EAAK;AAAA,MACvD;AACM,QAAAiH,GAAyB,mBAAmB,IAAI;AAAA,IAGtD;AAEA,QAAIE;AAGF,IAAAA,KAAgC;AAWlC,aAASC,GAAeC,GAAQ;AAE5B,aAAO,OAAOA,KAAW,YAAYA,MAAW,QAAQA,EAAO,aAAahJ;AAAA,IAEhF;AAEA,aAASiJ,KAA8B;AACrC;AACE,YAAIN,GAAoB,SAAS;AAC/B,cAAIvE,IAAOvB,EAAyB8F,GAAoB,QAAQ,IAAI;AAEpE,cAAIvE;AACF,mBAAO;AAAA;AAAA,iCAAqCA,IAAO;AAAA,QAE3D;AAEI,eAAO;AAAA,MACX;AAAA,IACA;AAEA,aAAS8E,GAA2B7E,GAAQ;AAQxC,aAAO;AAAA,IAEX;AAQA,QAAI8E,KAAwB,CAAE;AAE9B,aAASC,GAA6BC,GAAY;AAChD;AACE,YAAIC,IAAOL,GAA6B;AAExC,YAAI,CAACK,GAAM;AACT,cAAIC,KAAa,OAAOF,KAAe,WAAWA,IAAaA,EAAW,eAAeA,EAAW;AAEpG,UAAIE,OACFD,IAAO;AAAA;AAAA,2CAAgDC,KAAa;AAAA,QAE5E;AAEI,eAAOD;AAAA,MACX;AAAA,IACA;AAcA,aAASE,GAAoBtD,GAASmD,GAAY;AAChD;AACE,YAAI,CAACnD,EAAQ,UAAUA,EAAQ,OAAO,aAAaA,EAAQ,OAAO;AAChE;AAGF,QAAAA,EAAQ,OAAO,YAAY;AAC3B,YAAIuD,KAA4BL,GAA6BC,CAAU;AAEvE,YAAIF,GAAsBM,EAAyB;AACjD;AAGF,QAAAN,GAAsBM,EAAyB,IAAI;AAInD,YAAIC,KAAa;AAEjB,QAAIxD,KAAWA,EAAQ,UAAUA,EAAQ,WAAWyC,GAAoB,YAEtEe,KAAa,iCAAiC7G,EAAyBqD,EAAQ,OAAO,IAAI,IAAI,MAGhG2C,GAAgC3C,CAAO,GAEvC/E,EAAM,6HAAkIsI,IAA2BC,EAAU,GAE7Kb,GAAgC,IAAI;AAAA,MACxC;AAAA,IACA;AAYA,aAASc,GAAkBC,GAAMP,GAAY;AAC3C;AACE,YAAI,OAAOO,KAAS;AAClB;AAGF,YAAI7C,GAAQ6C,CAAI;AACd,mBAASC,KAAI,GAAGA,KAAID,EAAK,QAAQC,MAAK;AACpC,gBAAIC,KAAQF,EAAKC,EAAC;AAElB,YAAId,GAAee,EAAK,KACtBN,GAAoBM,IAAOT,CAAU;AAAA,UAE/C;AAAA,iBACeN,GAAea,CAAI;AAE5B,UAAIA,EAAK,WACPA,EAAK,OAAO,YAAY;AAAA,iBAEjBA,GAAM;AACf,cAAIG,KAAahJ,EAAc6I,CAAI;AAEnC,cAAI,OAAOG,MAAe,cAGpBA,OAAeH,EAAK;AAItB,qBAHII,KAAWD,GAAW,KAAKH,CAAI,GAC/BK,IAEG,EAAEA,KAAOD,GAAS,KAAI,GAAI;AAC/B,cAAIjB,GAAekB,GAAK,KAAK,KAC3BT,GAAoBS,GAAK,OAAOZ,CAAU;AAAA,QAKxD;AAAA,MACA;AAAA,IACA;AASA,aAASa,GAAkBhE,GAAS;AAClC;AACE,YAAI7D,IAAO6D,EAAQ;AAEnB,YAAI7D,KAAS,QAA8B,OAAOA,KAAS;AACzD;AAGF,YAAI8H;AAEJ,YAAI,OAAO9H,KAAS;AAClB,UAAA8H,KAAY9H,EAAK;AAAA,iBACR,OAAOA,KAAS,aAAaA,EAAK,aAAa9B;AAAA;AAAA,QAE1D8B,EAAK,aAAa3B;AAChB,UAAAyJ,KAAY9H,EAAK;AAAA;AAEjB;AAGF,YAAI8H,IAAW;AAEb,cAAI/F,KAAOvB,EAAyBR,CAAI;AACxC,UAAA+D,GAAe+D,IAAWjE,EAAQ,OAAO,QAAQ9B,IAAM8B,CAAO;AAAA,QAC/D,WAAU7D,EAAK,cAAc,UAAa,CAACyG,IAA+B;AACzE,UAAAA,KAAgC;AAEhC,cAAIsB,KAAQvH,EAAyBR,CAAI;AAEzC,UAAAlB,EAAM,uGAAuGiJ,MAAS,SAAS;AAAA,QACrI;AAEI,QAAI,OAAO/H,EAAK,mBAAoB,cAAc,CAACA,EAAK,gBAAgB,wBACtElB,EAAM,4HAAiI;AAAA,MAE7I;AAAA,IACA;AAOA,aAASkJ,GAAsBC,GAAU;AACvC;AAGE,iBAFIC,IAAO,OAAO,KAAKD,EAAS,KAAK,GAE5BT,KAAI,GAAGA,KAAIU,EAAK,QAAQV,MAAK;AACpC,cAAIxB,KAAMkC,EAAKV,EAAC;AAEhB,cAAIxB,OAAQ,cAAcA,OAAQ,OAAO;AACvC,YAAAQ,GAAgCyB,CAAQ,GAExCnJ,EAAM,4GAAiHkH,EAAG,GAE1HQ,GAAgC,IAAI;AACpC;AAAA,UACR;AAAA,QACA;AAEI,QAAIyB,EAAS,QAAQ,SACnBzB,GAAgCyB,CAAQ,GAExCnJ,EAAM,uDAAuD,GAE7D0H,GAAgC,IAAI;AAAA,MAE1C;AAAA,IACA;AAEA,aAAS2B,GAAkBnI,GAAM0B,GAAOsE,IAAKoC,IAAkBpG,IAAQ0D,IAAM;AAC3E;AACE,YAAI2C,KAAYtI,EAAmBC,CAAI;AAGvC,YAAI,CAACqI,IAAW;AACd,cAAIpB,KAAO;AAEX,WAAIjH,MAAS,UAAa,OAAOA,KAAS,YAAYA,MAAS,QAAQ,OAAO,KAAKA,CAAI,EAAE,WAAW,OAClGiH,MAAQ;AAGV,cAAIqB,IAAazB,GAAiC;AAElD,UAAIyB,IACFrB,MAAQqB,IAERrB,MAAQL,GAA6B;AAGvC,cAAI2B;AAEJ,UAAIvI,MAAS,OACXuI,IAAa,SACJ7D,GAAQ1E,CAAI,IACrBuI,IAAa,UACJvI,MAAS,UAAaA,EAAK,aAAarC,KACjD4K,IAAa,OAAO/H,EAAyBR,EAAK,IAAI,KAAK,aAAa,OACxEiH,KAAO,wEAEPsB,IAAa,OAAOvI,GAGtBlB,EAAM,2IAAqJyJ,GAAYtB,EAAI;AAAA,QACjL;AAEI,YAAIpD,IAAUqC,GAAOlG,GAAM0B,GAAOsE,IAAKhE,IAAQ0D,EAAI;AAGnD,YAAI7B,KAAW;AACb,iBAAOA;AAQT,YAAIwE,IAAW;AACb,cAAIG,KAAW9G,EAAM;AAErB,cAAI8G,OAAa;AACf,gBAAIJ;AACF,kBAAI1D,GAAQ8D,EAAQ,GAAG;AACrB,yBAAShB,KAAI,GAAGA,KAAIgB,GAAS,QAAQhB;AACnC,kBAAAF,GAAkBkB,GAAShB,EAAC,GAAGxH,CAAI;AAGrC,gBAAI,OAAO,UACT,OAAO,OAAOwI,EAAQ;AAAA,cAEpC;AACY,gBAAA1J,EAAM,sJAAgK;AAAA;AAGxK,cAAAwI,GAAkBkB,IAAUxI,CAAI;AAAA,QAG1C;AAEI,eAAIA,MAASnC,IACXmK,GAAsBnE,CAAO,IAE7BgE,GAAkBhE,CAAO,GAGpBA;AAAA,MACX;AAAA,IACC;AAKD,aAAS4E,GAAwBzI,GAAM0B,GAAOsE,IAAK;AAE/C,aAAOmC,GAAkBnI,GAAM0B,GAAOsE,IAAK,EAAI;AAAA,IAEnD;AACA,aAAS0C,GAAyB1I,GAAM0B,GAAOsE,IAAK;AAEhD,aAAOmC,GAAkBnI,GAAM0B,GAAOsE,IAAK,EAAK;AAAA,IAEpD;AAEA,QAAI2C,KAAOD,IAGPE,KAAQH;AAEZ,IAAAI,GAAA,WAAmBhL,GACnBgL,GAAA,MAAcF,IACdE,GAAA,OAAeD;AAAA,EACf,EAAM;;;;wBC9xCF,QAAQ,IAAI,aAAa,eAC3BE,GAAA,UAAiBlM,GAAoD,IAErEkM,GAAA,UAAiBC,GAAiD;;;AC2B7D,MAAMC,KAAmB;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,gCAAgC;AAAA,EAChC,sBAAsB;AAAA,EACtB,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,iCAAiC;AAAA,EACjC,iCAAiC;AAAA,EACjC,6BAA6B;AAAA,EAE7B,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAC5B,wBAAwB;AAAA,EACxB,2BAA2B;AAAA,EAC3B,mCAAmC;AAAA,EACnC,mCAAmC;AAAA,EACnC,+BAA+B;AAAA,EAE/B,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EAErB,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,6BAA6B;AAAA,EAC7B,sCACE;AAAA,EACF,0BAA0B;AAAA,EAE1B,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,cAAc;AAAA,EAEd,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,mCAAmC;AAAA,EACnC,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,4BAA4B;AAAA,EAC5B,+BAA+B;AAAA,EAC/B,qBAAqB;AAAA,EAErB,wBAAwB;AAC1B,GAKaC,KAAwB,OAAO,OAAOD,EAAgB,GC1FtDE,KAAN,MAAMA,GAAkB;AA+C/B;AAAA;AAAA;AAAA;AAAA;AA1CEC,GALWD,IAKJ,mBAAkB,CAACE,MACjBH,GAAsB,SAASG,CAAS;AAAA;AAAA;AAAA;AAAA;AAQjDD,GAdWD,IAcJ,oBAAmB,CAACG,OACpB,MAAM,QAAQA,CAAU,MAC3BA,IAAaA,EAAW,MAAM,GAAG,IAE5BA,EAAW,KAAK,CAAClM,MAAM+L,GAAkB,gBAAgB/L,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAQpEgM,GA1BWD,IA0BJ,6BAA4B,CAACI,MAC3BL,GAAsB;AAAA,EAC3B,CAACM,MAAM,CAACD,EAAQ,MAAM,MAAMC,CAAC,SAAS;AACvC,IAGHJ,GAhCWD,IAgCJ,uCAAsC;AAAA,EAC3CF,GAAiB;AAAA,EACjBA,GAAiB;AAAA,EACjBA,GAAiB;AAClB,IAEDG,GAtCWD,IAsCJ,6BAA4B;AAAA,EACjCF,GAAiB;AAAA,EACjBA,GAAiB;AAClB,IAEDG,GA3CWD,IA2CJ,kBAAiB;AAAA,EACtBF,GAAiB;AAAA,EACjBA,GAAiB;AAClB;AA9CI,IAAMQ,KAANN;AC0xBA,MAAMO,KAAmB;;;;AC/xBhC,KAAC,SAASC,GAAElM,GAAE;AAAsD,MAAAmM,YAAenM,EAAmH;AAAA,IAAA,GAAEoM,IAAM,WAAU;AAAc,UAAIF,IAAE,KAAIlM,IAAE,KAAIR,IAAE,MAAK6M,IAAE,eAAcrC,IAAE,UAAS,IAAE,UAAS,IAAE,QAAOpK,IAAE,OAAM0M,IAAE,QAAO3M,IAAE,SAAQR,IAAE,WAAU,IAAE,QAAOY,IAAE,QAAOT,IAAE,gBAAeiN,IAAE,8FAA6FC,IAAE,uFAAsFC,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASP,GAAE;AAAC,YAAIlM,IAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAER,IAAE0M,IAAE;AAAI,eAAM,MAAIA,KAAGlM,GAAGR,IAAE,MAAI,EAAE,KAAGQ,EAAER,CAAC,KAAGQ,EAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAET,IAAE,SAAS2M,GAAElM,GAAER,GAAE;AAAC,YAAI6M,IAAE,OAAOH,CAAC;AAAE,eAAM,CAACG,KAAGA,EAAE,UAAQrM,IAAEkM,IAAE,KAAG,MAAMlM,IAAE,IAAEqM,EAAE,MAAM,EAAE,KAAK7M,CAAC,IAAE0M;AAAA,MAAC,GAAEH,IAAE,EAAC,GAAExM,GAAE,GAAE,SAAS2M,GAAE;AAAC,YAAIlM,IAAE,CAACkM,EAAE,UAAS,GAAG1M,IAAE,KAAK,IAAIQ,CAAC,GAAEqM,IAAE,KAAK,MAAM7M,IAAE,EAAE,GAAEwK,IAAExK,IAAE;AAAG,gBAAOQ,KAAG,IAAE,MAAI,OAAKT,EAAE8M,GAAE,GAAE,GAAG,IAAE,MAAI9M,EAAEyK,GAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAASkC,EAAElM,GAAER,GAAE;AAAC,YAAGQ,EAAE,KAAI,IAAGR,EAAE,KAAI,EAAG,QAAM,CAAC0M,EAAE1M,GAAEQ,CAAC;AAAE,YAAIqM,IAAE,MAAI7M,EAAE,KAAI,IAAGQ,EAAE,WAASR,EAAE,UAAQQ,EAAE,MAAO,IAAEgK,IAAEhK,EAAE,QAAQ,IAAIqM,GAAE1M,CAAC,GAAE+F,IAAElG,IAAEwK,IAAE,GAAE0C,IAAE1M,EAAE,MAAK,EAAG,IAAIqM,KAAG3G,IAAE,KAAG,IAAG/F,CAAC;AAAE,eAAM,EAAE,EAAE0M,KAAG7M,IAAEwK,MAAItE,IAAEsE,IAAE0C,IAAEA,IAAE1C,OAAK;AAAA,MAAE,GAAE,GAAE,SAASkC,GAAE;AAAC,eAAOA,IAAE,IAAE,KAAK,KAAKA,CAAC,KAAG,IAAE,KAAK,MAAMA,CAAC;AAAA,MAAC,GAAE,GAAE,SAASA,GAAE;AAAC,eAAM,EAAC,GAAEvM,GAAE,GAAE,GAAE,GAAE2M,GAAE,GAAE1M,GAAE,GAAEG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAEiK,GAAE,IAAGqC,GAAE,GAAElN,EAAC,EAAE+M,CAAC,KAAG,OAAOA,KAAG,EAAE,EAAE,YAAa,EAAC,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,GAAE;AAAC,eAAgBA,MAAT;AAAA,MAAU,EAAC,GAAErM,IAAE,MAAK8M,IAAE,CAAE;AAAC,MAAAA,EAAE9M,CAAC,IAAE4M;AAAE,UAAIhN,IAAE,kBAAiBmN,IAAE,SAASV,GAAE;AAAC,eAAOA,aAAaW,KAAG,EAAE,CAACX,KAAG,CAACA,EAAEzM,CAAC;AAAA,MAAE,GAAEqN,IAAE,SAASZ,EAAElM,GAAER,GAAE6M,GAAE;AAAC,YAAIrC;AAAE,YAAG,CAAChK,EAAE,QAAOH;AAAE,YAAa,OAAOG,KAAjB,UAAmB;AAAC,cAAI0F,IAAE1F,EAAE,YAAa;AAAC,UAAA2M,EAAEjH,CAAC,MAAIsE,IAAEtE,IAAGlG,MAAImN,EAAEjH,CAAC,IAAElG,GAAEwK,IAAEtE;AAAG,cAAIgH,IAAE1M,EAAE,MAAM,GAAG;AAAE,cAAG,CAACgK,KAAG0C,EAAE,SAAO,EAAE,QAAOR,EAAEQ,EAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAI9M,IAAEI,EAAE;AAAK,UAAA2M,EAAE/M,CAAC,IAAEI,GAAEgK,IAAEpK;AAAA,QAAC;AAAC,eAAM,CAACyM,KAAGrC,MAAInK,IAAEmK,IAAGA,KAAG,CAACqC,KAAGxM;AAAA,MAAC,GAAEkN,IAAE,SAASb,GAAElM,GAAE;AAAC,YAAG4M,EAAEV,CAAC,EAAE,QAAOA,EAAE,MAAK;AAAG,YAAI1M,IAAY,OAAOQ,KAAjB,WAAmBA,IAAE,CAAE;AAAC,eAAOR,EAAE,OAAK0M,GAAE1M,EAAE,OAAK,WAAU,IAAIqN,EAAErN,CAAC;AAAA,MAAC,GAAEM,IAAEiM;AAAE,MAAAjM,EAAE,IAAEgN,GAAEhN,EAAE,IAAE8M,GAAE9M,EAAE,IAAE,SAASoM,GAAElM,GAAE;AAAC,eAAO+M,EAAEb,GAAE,EAAC,QAAOlM,EAAE,IAAG,KAAIA,EAAE,IAAG,GAAEA,EAAE,IAAG,SAAQA,EAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAI6M,IAAE,WAAU;AAAC,iBAASJ,EAAEP,GAAE;AAAC,eAAK,KAAGY,EAAEZ,EAAE,QAAO,MAAK,EAAE,GAAE,KAAK,MAAMA,CAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,EAAE,KAAG,CAAA,GAAG,KAAKzM,CAAC,IAAE;AAAA,QAAE;AAAC,YAAIF,IAAEkN,EAAE;AAAU,eAAOlN,EAAE,QAAM,SAAS2M,GAAE;AAAC,eAAK,KAAG,SAASA,GAAE;AAAC,gBAAIlM,IAAEkM,EAAE,MAAK1M,IAAE0M,EAAE;AAAI,gBAAUlM,MAAP,KAAS,QAAO,oBAAI,KAAK,GAAG;AAAE,gBAAGF,EAAE,EAAEE,CAAC,EAAE,QAAO,oBAAI;AAAK,gBAAGA,aAAa,KAAK,QAAO,IAAI,KAAKA,CAAC;AAAE,gBAAa,OAAOA,KAAjB,YAAoB,CAAC,MAAM,KAAKA,CAAC,GAAE;AAAC,kBAAIqM,IAAErM,EAAE,MAAMuM,CAAC;AAAE,kBAAGF,GAAE;AAAC,oBAAIrC,IAAEqC,EAAE,CAAC,IAAE,KAAG,GAAE3G,KAAG2G,EAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAO7M,IAAE,IAAI,KAAK,KAAK,IAAI6M,EAAE,CAAC,GAAErC,GAAEqC,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE3G,CAAC,CAAC,IAAE,IAAI,KAAK2G,EAAE,CAAC,GAAErC,GAAEqC,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE3G,CAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAK1F,CAAC;AAAA,UAAC,EAAEkM,CAAC,GAAE,KAAK,KAAM;AAAA,QAAA,GAAE3M,EAAE,OAAK,WAAU;AAAC,cAAI2M,IAAE,KAAK;AAAG,eAAK,KAAGA,EAAE,eAAc,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,QAAS,GAAC,KAAK,KAAGA,EAAE,OAAQ,GAAC,KAAK,KAAGA,EAAE,YAAW,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,MAAIA,EAAE,gBAAiB;AAAA,QAAA,GAAE3M,EAAE,SAAO,WAAU;AAAC,iBAAOO;AAAA,QAAC,GAAEP,EAAE,UAAQ,WAAU;AAAC,iBAAQ,KAAK,GAAG,SAAU,MAAGD;AAAA,QAAE,GAAEC,EAAE,SAAO,SAAS2M,GAAElM,GAAE;AAAC,cAAIR,IAAEuN,EAAEb,CAAC;AAAE,iBAAO,KAAK,QAAQlM,CAAC,KAAGR,KAAGA,KAAG,KAAK,MAAMQ,CAAC;AAAA,QAAC,GAAET,EAAE,UAAQ,SAAS2M,GAAElM,GAAE;AAAC,iBAAO+M,EAAEb,CAAC,IAAE,KAAK,QAAQlM,CAAC;AAAA,QAAC,GAAET,EAAE,WAAS,SAAS2M,GAAElM,GAAE;AAAC,iBAAO,KAAK,MAAMA,CAAC,IAAE+M,EAAEb,CAAC;AAAA,QAAC,GAAE3M,EAAE,KAAG,SAAS2M,GAAElM,GAAER,GAAE;AAAC,iBAAOM,EAAE,EAAEoM,CAAC,IAAE,KAAKlM,CAAC,IAAE,KAAK,IAAIR,GAAE0M,CAAC;AAAA,QAAC,GAAE3M,EAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAS,IAAC,GAAG;AAAA,QAAC,GAAEA,EAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG;QAAS,GAAEA,EAAE,UAAQ,SAAS2M,GAAElM,GAAE;AAAC,cAAIR,IAAE,MAAK6M,IAAE,CAAC,CAACvM,EAAE,EAAEE,CAAC,KAAGA,GAAEb,IAAEW,EAAE,EAAEoM,CAAC,GAAE5M,IAAE,SAAS4M,IAAElM,GAAE;AAAC,gBAAIgK,KAAElK,EAAE,EAAEN,EAAE,KAAG,KAAK,IAAIA,EAAE,IAAGQ,GAAEkM,EAAC,IAAE,IAAI,KAAK1M,EAAE,IAAGQ,GAAEkM,EAAC,GAAE1M,CAAC;AAAE,mBAAO6M,IAAErC,KAAEA,GAAE,MAAMpK,CAAC;AAAA,UAAC,GAAE2M,IAAE,SAASL,IAAElM,GAAE;AAAC,mBAAOF,EAAE,EAAEN,EAAE,OAAQ,EAAC0M,EAAC,EAAE,MAAM1M,EAAE,OAAO,GAAG,IAAG6M,IAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMrM,CAAC,CAAC,GAAER,CAAC;AAAA,UAAC,GAAEgN,IAAE,KAAK,IAAGC,IAAE,KAAK,IAAGlN,IAAE,KAAK,IAAGwM,IAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAO5M,GAAC;AAAA,YAAE,KAAK;AAAE,qBAAOkN,IAAE/M,EAAE,GAAE,CAAC,IAAEA,EAAE,IAAG,EAAE;AAAA,YAAE,KAAKK;AAAE,qBAAO0M,IAAE/M,EAAE,GAAEmN,CAAC,IAAEnN,EAAE,GAAEmN,IAAE,CAAC;AAAA,YAAE,KAAKH;AAAE,kBAAIzM,IAAE,KAAK,QAAO,EAAG,aAAW,GAAE8M,KAAGH,IAAE3M,IAAE2M,IAAE,IAAEA,KAAG3M;AAAE,qBAAOP,EAAE+M,IAAE9M,IAAEoN,IAAEpN,KAAG,IAAEoN,IAAGF,CAAC;AAAA,YAAE,KAAK7M;AAAA,YAAE,KAAKG;AAAE,qBAAOwM,EAAER,IAAE,SAAQ,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOQ,EAAER,IAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOQ,EAAER,IAAE,WAAU,CAAC;AAAA,YAAE,KAAK/B;AAAE,qBAAOuC,EAAER,IAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK;UAAO;AAAA,QAAC,GAAExM,EAAE,QAAM,SAAS2M,GAAE;AAAC,iBAAO,KAAK,QAAQA,GAAE,EAAE;AAAA,QAAC,GAAE3M,EAAE,OAAK,SAAS2M,GAAElM,GAAE;AAAC,cAAIR,GAAE8M,IAAExM,EAAE,EAAEoM,CAAC,GAAE/M,IAAE,SAAO,KAAK,KAAG,QAAM,KAAIG,KAAGE,IAAE,CAAE,GAACA,EAAEI,CAAC,IAAET,IAAE,QAAOK,EAAEO,CAAC,IAAEZ,IAAE,QAAOK,EAAEG,CAAC,IAAER,IAAE,SAAQK,EAAE,CAAC,IAAEL,IAAE,YAAWK,EAAE,CAAC,IAAEL,IAAE,SAAQK,EAAE,CAAC,IAAEL,IAAE,WAAUK,EAAEwK,CAAC,IAAE7K,IAAE,WAAUK,EAAE6M,CAAC,IAAElN,IAAE,gBAAeK,GAAG8M,CAAC,GAAEC,IAAED,MAAI1M,IAAE,KAAK,MAAII,IAAE,KAAK,MAAIA;AAAE,cAAGsM,MAAI3M,KAAG2M,MAAI,GAAE;AAAC,gBAAIE,IAAE,KAAK,MAAO,EAAC,IAAIzM,GAAE,CAAC;AAAE,YAAAyM,EAAE,GAAGlN,CAAC,EAAEiN,CAAC,GAAEC,EAAE,QAAO,KAAK,KAAGA,EAAE,IAAIzM,GAAE,KAAK,IAAI,KAAK,IAAGyM,EAAE,aAAa,CAAC,EAAE;AAAA,UAAE,MAAM,CAAAlN,KAAG,KAAK,GAAGA,CAAC,EAAEiN,CAAC;AAAE,iBAAO,KAAK,KAAI,GAAG;AAAA,QAAI,GAAEhN,EAAE,MAAI,SAAS2M,GAAElM,GAAE;AAAC,iBAAO,KAAK,QAAQ,KAAKkM,GAAElM,CAAC;AAAA,QAAC,GAAET,EAAE,MAAI,SAAS2M,GAAE;AAAC,iBAAO,KAAKpM,EAAE,EAAEoM,CAAC,CAAC,EAAC;AAAA,QAAE,GAAE3M,EAAE,MAAI,SAAS8M,GAAElN,GAAE;AAAC,cAAIY,GAAET,IAAE;AAAK,UAAA+M,IAAE,OAAOA,CAAC;AAAE,cAAIE,IAAEzM,EAAE,EAAEX,CAAC,GAAEqN,IAAE,SAASN,GAAE;AAAC,gBAAIlM,IAAE+M,EAAEzN,CAAC;AAAE,mBAAOQ,EAAE,EAAEE,EAAE,KAAKA,EAAE,KAAM,IAAC,KAAK,MAAMkM,IAAEG,CAAC,CAAC,GAAE/M,CAAC;AAAA,UAAC;AAAE,cAAGiN,MAAI5M,EAAE,QAAO,KAAK,IAAIA,GAAE,KAAK,KAAG0M,CAAC;AAAE,cAAGE,MAAI,EAAE,QAAO,KAAK,IAAI,GAAE,KAAK,KAAGF,CAAC;AAAE,cAAGE,MAAI3M,EAAE,QAAO4M,EAAE,CAAC;AAAE,cAAGD,MAAID,EAAE,QAAOE,EAAE,CAAC;AAAE,cAAIC,KAAG1M,IAAE,IAAGA,EAAE,CAAC,IAAEC,GAAED,EAAE,CAAC,IAAEP,GAAEO,EAAEiK,CAAC,IAAEkC,GAAEnM,GAAGwM,CAAC,KAAG,GAAEhN,IAAE,KAAK,GAAG,QAAS,IAAC8M,IAAEI;AAAE,iBAAO3M,EAAE,EAAEP,GAAE,IAAI;AAAA,QAAC,GAAEA,EAAE,WAAS,SAAS2M,GAAElM,GAAE;AAAC,iBAAO,KAAK,IAAI,KAAGkM,GAAElM,CAAC;AAAA,QAAC,GAAET,EAAE,SAAO,SAAS2M,GAAE;AAAC,cAAIlM,IAAE,MAAKR,IAAE,KAAK,QAAO;AAAG,cAAG,CAAC,KAAK,QAAS,EAAC,QAAOA,EAAE,eAAaF;AAAE,cAAI+M,IAAEH,KAAG,wBAAuBlC,IAAElK,EAAE,EAAE,IAAI,GAAE4F,IAAE,KAAK,IAAGgH,IAAE,KAAK,IAAG9M,IAAE,KAAK,IAAG0M,IAAE9M,EAAE,UAASG,IAAEH,EAAE,QAAOL,IAAEK,EAAE,UAASwN,IAAE,SAASd,GAAE1M,IAAEwK,GAAEtE,IAAE;AAAC,mBAAOwG,MAAIA,EAAE1M,EAAC,KAAG0M,EAAElM,GAAEqM,CAAC,MAAIrC,EAAExK,EAAC,EAAE,MAAM,GAAEkG,EAAC;AAAA,UAAC,GAAE3F,IAAE,SAASmM,GAAE;AAAC,mBAAOpM,EAAE,EAAE4F,IAAE,MAAI,IAAGwG,GAAE,GAAG;AAAA,UAAC,GAAEK,KAAEpN,KAAG,SAAS+M,GAAElM,IAAER,GAAE;AAAC,gBAAI6M,KAAEH,IAAE,KAAG,OAAK;AAAK,mBAAO1M,IAAE6M,GAAE,gBAAcA;AAAA,UAAC;AAAE,iBAAOA,EAAE,QAAQG,GAAG,SAASN,GAAEG,IAAE;AAAC,mBAAOA,MAAG,SAASH,GAAE;AAAC,sBAAOA,GAAG;AAAA,gBAAA,KAAI;AAAK,yBAAO,OAAOlM,EAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAOF,EAAE,EAAEE,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOJ,IAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOE,EAAE,EAAEF,IAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOoN,EAAExN,EAAE,aAAYI,GAAED,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOqN,EAAErN,GAAEC,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOI,EAAE;AAAA,gBAAG,KAAI;AAAK,yBAAOF,EAAE,EAAEE,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOgN,EAAExN,EAAE,aAAYQ,EAAE,IAAGsM,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOU,EAAExN,EAAE,eAAcQ,EAAE,IAAGsM,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,EAAEtM,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAO0F,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO5F,EAAE,EAAE4F,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO3F,EAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,EAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOwM,GAAE7G,GAAEgH,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOH,GAAE7G,GAAEgH,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO5M,EAAE,EAAE4M,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAO1M,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOF,EAAE,EAAEE,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOF,EAAE,EAAEE,EAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOgK;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,EAAEkC,CAAC,KAAGlC,EAAE,QAAQ,KAAI,EAAE;AAAA,UAAC,CAAC;AAAA,QAAE,GAAEzK,EAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAmB,IAAC,EAAE;AAAA,QAAC,GAAEA,EAAE,OAAK,SAAS8M,GAAEtM,GAAET,GAAE;AAAC,cAAIiN,GAAEC,IAAE,MAAKC,IAAE3M,EAAE,EAAEC,CAAC,GAAER,IAAEwN,EAAEV,CAAC,GAAEN,KAAGxM,EAAE,UAAW,IAAC,KAAK,UAAW,KAAES,GAAEH,IAAE,OAAKN,GAAEoN,IAAE,WAAU;AAAC,mBAAO7M,EAAE,EAAE0M,GAAEjN,CAAC;AAAA,UAAC;AAAE,kBAAOkN,GAAC;AAAA,YAAE,KAAK;AAAE,cAAAF,IAAEI,EAAG,IAAC;AAAG;AAAA,YAAM,KAAKhN;AAAE,cAAA4M,IAAEI,EAAG;AAAC;AAAA,YAAM,KAAKxN;AAAE,cAAAoN,IAAEI,MAAI;AAAE;AAAA,YAAM,KAAKL;AAAE,cAAAC,KAAG1M,IAAEkM,KAAG;AAAO;AAAA,YAAM,KAAKnM;AAAE,cAAA2M,KAAG1M,IAAEkM,KAAG;AAAM;AAAA,YAAM,KAAK;AAAE,cAAAQ,IAAE1M,IAAEL;AAAE;AAAA,YAAM,KAAK;AAAE,cAAA+M,IAAE1M,IAAEG;AAAE;AAAA,YAAM,KAAKgK;AAAE,cAAAuC,IAAE1M,IAAEqM;AAAE;AAAA,YAAM;AAAQ,cAAAK,IAAE1M;AAAA,UAAC;AAAC,iBAAOP,IAAEiN,IAAEzM,EAAE,EAAEyM,CAAC;AAAA,QAAC,GAAEhN,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAMI,CAAC,EAAE;AAAA,QAAE,GAAEJ,EAAE,UAAQ,WAAU;AAAC,iBAAOoN,EAAE,KAAK,EAAE;AAAA,QAAC,GAAEpN,EAAE,SAAO,SAAS2M,GAAElM,GAAE;AAAC,cAAG,CAACkM,EAAE,QAAO,KAAK;AAAG,cAAI1M,IAAE,KAAK,MAAK,GAAG6M,IAAES,EAAEZ,GAAElM,GAAE,EAAE;AAAE,iBAAOqM,MAAI7M,EAAE,KAAG6M,IAAG7M;AAAA,QAAC,GAAED,EAAE,QAAM,WAAU;AAAC,iBAAOO,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAEP,EAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAS,CAAA;AAAA,QAAC,GAAEA,EAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAO,IAAG,KAAK,YAAa,IAAC;AAAA,QAAI,GAAEA,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAEA,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAEkN;AAAA,MAAC,EAAG,GAACpN,IAAEwN,EAAE;AAAU,aAAOE,EAAE,YAAU1N,GAAE,CAAC,CAAC,OAAMgN,CAAC,GAAE,CAAC,MAAKrC,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAKpK,CAAC,GAAE,CAAC,MAAKD,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAKI,CAAC,CAAC,EAAE,QAAS,SAASmM,GAAE;AAAC,QAAA7M,EAAE6M,EAAE,CAAC,CAAC,IAAE,SAASlM,GAAE;AAAC,iBAAO,KAAK,GAAGA,GAAEkM,EAAE,CAAC,GAAEA,EAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,CAAG,GAACa,EAAE,SAAO,SAASb,GAAElM,GAAE;AAAC,eAAOkM,EAAE,OAAKA,EAAElM,GAAE6M,GAAEE,CAAC,GAAEb,EAAE,KAAG,KAAIa;AAAA,MAAC,GAAEA,EAAE,SAAOD,GAAEC,EAAE,UAAQH,GAAEG,EAAE,OAAK,SAASb,GAAE;AAAC,eAAOa,EAAE,MAAIb,CAAC;AAAA,MAAC,GAAEa,EAAE,KAAGJ,EAAE9M,CAAC,GAAEkN,EAAE,KAAGJ,GAAEI,EAAE,IAAE,IAAGA;AAAA,IAAC,CAAC;AAAA;;;;;;;ACAr/N,KAAC,SAASV,GAAErM,GAAE;AAAsD,MAAAmM,EAAe,UAAAnM,EAAuI;AAAA,IAAA,GAAEoM,IAAM,WAAU;AAAc,aAAO,SAASC,GAAErM,GAAEkM,GAAE;AAAC,QAAAG,IAAEA,KAAG,CAAE;AAAC,YAAI7M,IAAEQ,EAAE,WAAUsM,IAAE,EAAC,QAAO,SAAQ,MAAK,UAAS,GAAE,iBAAgB,GAAE,YAAW,IAAG,cAAa,GAAE,WAAU,IAAG,YAAW,GAAE,SAAQ,IAAG,WAAU,GAAE,WAAU,IAAG,aAAY,GAAE,UAAS,IAAG,WAAU;AAAE,iBAAStC,EAAEqC,GAAErM,GAAEkM,GAAEI,GAAE;AAAC,iBAAO9M,EAAE,WAAW6M,GAAErM,GAAEkM,GAAEI,CAAC;AAAA,QAAC;AAAC,QAAAJ,EAAE,GAAG,eAAaI,GAAE9M,EAAE,aAAW,SAASQ,GAAER,GAAEwK,GAAE,GAAE0C,GAAE;AAAC,mBAAQvN,GAAES,GAAE8F,GAAEpG,IAAE0K,EAAE,QAAS,EAAC,gBAAcsC,GAAEU,IAAEX,EAAE,cAAY,CAAC,EAAC,GAAE,KAAI,GAAE,IAAG,GAAE,SAAQ,GAAE,EAAC,GAAE,KAAI,GAAE,GAAE,GAAE,EAAC,GAAE,MAAK,GAAE,IAAG,GAAE,SAAQ,GAAE,EAAC,GAAE,KAAI,GAAE,GAAE,GAAE,EAAC,GAAE,MAAK,GAAE,IAAG,GAAE,OAAM,GAAE,EAAC,GAAE,KAAI,GAAE,GAAE,GAAE,EAAC,GAAE,MAAK,GAAE,IAAG,GAAE,MAAK,GAAE,EAAC,GAAE,KAAI,GAAE,GAAE,GAAE,EAAC,GAAE,MAAK,GAAE,IAAG,GAAE,QAAO,GAAE,EAAC,GAAE,KAAI,GAAE,GAAE,GAAE,EAAC,GAAE,MAAK,GAAE,OAAM,CAAC,GAAE9M,IAAEyN,EAAE,QAAOrN,IAAE,GAAEA,IAAEJ,GAAEI,KAAG,GAAE;AAAC,gBAAI6M,IAAEQ,EAAErN,CAAC;AAAE,YAAA6M,EAAE,MAAIrN,IAAE,IAAE+M,EAAElM,CAAC,EAAE,KAAKgK,GAAEwC,EAAE,GAAE,EAAE,IAAExC,EAAE,KAAKhK,GAAEwM,EAAE,GAAE,EAAE;AAAG,gBAAI/M,KAAG4M,EAAE,YAAU,KAAK,OAAO,KAAK,IAAIlN,CAAC,CAAC;AAAE,gBAAGuG,IAAEvG,IAAE,GAAEM,KAAG+M,EAAE,KAAG,CAACA,EAAE,GAAE;AAAC,cAAA/M,KAAG,KAAGE,IAAE,MAAI6M,IAAEQ,EAAErN,IAAE,CAAC;AAAG,kBAAIoM,IAAEzM,EAAEkN,EAAE,CAAC;AAAE,cAAAE,MAAIjN,IAAEiN,EAAE,KAAGjN,CAAC,IAAGG,IAAY,OAAOmM,KAAjB,WAAmBA,EAAE,QAAQ,MAAKtM,CAAC,IAAEsM,EAAEtM,GAAED,GAAEgN,EAAE,GAAE9G,CAAC;AAAE;AAAA,YAAK;AAAA,UAAC;AAAC,cAAGlG,EAAE,QAAOI;AAAE,cAAI6M,IAAE/G,IAAEpG,EAAE,SAAOA,EAAE;AAAK,iBAAkB,OAAOmN,KAAnB,aAAqBA,EAAE7M,CAAC,IAAE6M,EAAE,QAAQ,MAAK7M,CAAC;AAAA,QAAC,GAAEJ,EAAE,KAAG,SAAS6M,GAAErM,GAAE;AAAC,iBAAOgK,EAAEqC,GAAErM,GAAE,MAAK,EAAE;AAAA,QAAC,GAAER,EAAE,OAAK,SAAS6M,GAAErM,GAAE;AAAC,iBAAOgK,EAAEqC,GAAErM,GAAE,IAAI;AAAA,QAAC;AAAE,YAAID,IAAE,SAASsM,GAAE;AAAC,iBAAOA,EAAE,KAAGH,EAAE,IAAG,IAAGA,EAAC;AAAA,QAAE;AAAE,QAAA1M,EAAE,QAAM,SAAS6M,GAAE;AAAC,iBAAO,KAAK,GAAGtM,EAAE,IAAI,GAAEsM,CAAC;AAAA,QAAC,GAAE7M,EAAE,UAAQ,SAAS6M,GAAE;AAAC,iBAAO,KAAK,KAAKtM,EAAE,IAAI,GAAEsM,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;;;;;ACG14CY,GAAM,OAAOC,EAAkB;aC4BpBC,KAAW,WAAW;AAC/B,SAAAA,KAAW,OAAO,UAAU,SAAkB,GAAG;AAC7C,aAASzH,GAAGsE,IAAI,GAAGxK,IAAI,UAAU,QAAQwK,IAAIxK,GAAGwK,KAAK;AACjD,MAAAtE,IAAI,UAAUsE,CAAC;AACf,eAASvK,KAAKiG,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGjG,CAAC,MAAG,EAAEA,CAAC,IAAIiG,EAAEjG,CAAC;AAAA,IACrF;AACM,WAAO;AAAA,EACb,GACS0N,GAAS,MAAM,MAAM,SAAS;AACvC;ACIO,SAASC,GAAUC,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;AC5CA,IAAIC,KAAuB,CAAC,sBAAsB,sBAAsB,GAEpEC,KAAuB;AAIpB,SAASC,GAAOC,GAAOC,GAAS;AACnC,EAAIA,MAAY,WAAUA,IAAU,CAAA;AAMpC,WALIC,IAAKD,EAAQ,aAAaE,IAAcD,MAAO,SAASL,KAAuBK,GAAIE,IAAKH,EAAQ,aAAaI,IAAcD,MAAO,SAASN,KAAuBM,GAAIE,IAAKL,EAAQ,WAAWM,IAAYD,MAAO,SAASX,KAAYW,GAAIE,IAAKP,EAAQ,WAAWQ,IAAYD,MAAO,SAAS,MAAMA,GACpSE,IAASC,GAAQA,GAAQX,GAAOG,GAAa,QAAQ,GAAGE,GAAa,IAAI,GACzEO,IAAQ,GACRC,IAAMH,EAAO,QAEVA,EAAO,OAAOE,CAAK,MAAM;AAC5B,IAAAA;AACJ,SAAOF,EAAO,OAAOG,IAAM,CAAC,MAAM;AAC9B,IAAAA;AAEJ,SAAOH,EAAO,MAAME,GAAOC,CAAG,EAAE,MAAM,IAAI,EAAE,IAAIN,CAAS,EAAE,KAAKE,CAAS;AAC7E;AAIA,SAASE,GAAQX,GAAOc,GAAInH,GAAO;AAC/B,SAAImH,aAAc,SACPd,EAAM,QAAQc,GAAInH,CAAK,IAC3BmH,EAAG,OAAO,SAAUd,GAAOc,GAAI;AAAE,WAAOd,EAAM,QAAQc,GAAInH,CAAK;AAAA,EAAE,GAAIqG,CAAK;AACrF;AC3BO,SAASe,GAAoBf,GAAOgB,GAAO;AAC9C,MAAIC,IAAYjB,EAAM,OAAO,CAAC,GAC1BkB,IAAalB,EAAM,OAAO,CAAC,EAAE,YAAa;AAC9C,SAAIgB,IAAQ,KAAKC,KAAa,OAAOA,KAAa,MACvC,MAAMA,IAAYC,IAEtB,KAAKD,EAAU,YAAW,IAAKC;AAC1C;AACO,SAASC,GAAyBnB,GAAO;AAC5C,SAAOA,EAAM,OAAO,CAAC,EAAE,gBAAgBA,EAAM,MAAM,CAAC,EAAE,YAAa;AACvE;AACO,SAASoB,GAAWpB,GAAOC,GAAS;AACvC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7BF,GAAOC,GAAON,GAAS,EAAE,WAAW,IAAI,WAAWqB,MAAuBd,CAAO,CAAC;AAC7F;ACdO,SAASoB,GAAmBrB,GAAOgB,GAAO;AAC7C,SAAIA,MAAU,IACHhB,EAAM,YAAa,IACvBe,GAAoBf,GAAOgB,CAAK;AAC3C;AACO,SAASM,GAAwBtB,GAAOgB,GAAO;AAClD,SAAIA,MAAU,IACHhB,EAAM,YAAa,IACvBmB,GAAyBnB,CAAK;AACzC;AACO,SAASuB,GAAUvB,GAAOC,GAAS;AACtC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7BmB,GAAWpB,GAAON,GAAS,EAAE,WAAW2B,GAAkB,GAAIpB,CAAO,CAAC;AACjF;AC6BO,SAASN,GAAUC,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;AC5CA,IAAIC,KAAuB,CAAC,sBAAsB,sBAAsB,GAEpEC,KAAuB;AAIpB,SAASC,GAAOC,GAAOC,GAAS;AACnC,EAAIA,MAAY,WAAUA,IAAU,CAAA;AAMpC,WALIC,IAAKD,EAAQ,aAAaE,IAAcD,MAAO,SAASL,KAAuBK,GAAIE,IAAKH,EAAQ,aAAaI,IAAcD,MAAO,SAASN,KAAuBM,GAAIE,IAAKL,EAAQ,WAAWM,IAAYD,MAAO,SAASX,KAAYW,GAAIE,IAAKP,EAAQ,WAAWQ,IAAYD,MAAO,SAAS,MAAMA,GACpSE,IAASC,GAAQA,GAAQX,GAAOG,GAAa,QAAQ,GAAGE,GAAa,IAAI,GACzEO,IAAQ,GACRC,IAAMH,EAAO,QAEVA,EAAO,OAAOE,CAAK,MAAM;AAC5B,IAAAA;AACJ,SAAOF,EAAO,OAAOG,IAAM,CAAC,MAAM;AAC9B,IAAAA;AAEJ,SAAOH,EAAO,MAAME,GAAOC,CAAG,EAAE,MAAM,IAAI,EAAE,IAAIN,CAAS,EAAE,KAAKE,CAAS;AAC7E;AAIA,SAASE,GAAQX,GAAOc,GAAInH,GAAO;AAC/B,SAAImH,aAAc,SACPd,EAAM,QAAQc,GAAInH,CAAK,IAC3BmH,EAAG,OAAO,SAAUd,GAAOc,GAAI;AAAE,WAAOd,EAAM,QAAQc,GAAInH,CAAK;AAAA,EAAE,GAAIqG,CAAK;AACrF;AC1BO,SAASwB,GAAexB,GAAO;AAClC,SAAOA,EAAM,OAAO,CAAC,EAAE,YAAW,IAAKA,EAAM,OAAO,CAAC;AACzD;;;;;ACFO,SAASyB,GAAqBzB,GAAO;AACxC,SAAOwB,GAAexB,EAAM,aAAa;AAC7C;AACO,SAAS0B,GAAY1B,GAAOC,GAAS;AACxC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7BF,GAAOC,GAAON,GAAS,EAAE,WAAW,KAAK,WAAW+B,MAAwBxB,CAAO,CAAC;AAC/F;ACmCO,SAASN,GAAUC,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;AC5CA,IAAIC,KAAuB,CAAC,sBAAsB,sBAAsB,GAEpEC,KAAuB;AAIpB,SAASC,GAAOC,GAAOC,GAAS;AACnC,EAAIA,MAAY,WAAUA,IAAU,CAAA;AAMpC,WALIC,IAAKD,EAAQ,aAAaE,IAAcD,MAAO,SAASL,KAAuBK,GAAIE,IAAKH,EAAQ,aAAaI,IAAcD,MAAO,SAASN,KAAuBM,GAAIE,IAAKL,EAAQ,WAAWM,IAAYD,MAAO,SAASX,KAAYW,GAAIE,IAAKP,EAAQ,WAAWQ,IAAYD,MAAO,SAAS,MAAMA,GACpSE,IAASC,GAAQA,GAAQX,GAAOG,GAAa,QAAQ,GAAGE,GAAa,IAAI,GACzEO,IAAQ,GACRC,IAAMH,EAAO,QAEVA,EAAO,OAAOE,CAAK,MAAM;AAC5B,IAAAA;AACJ,SAAOF,EAAO,OAAOG,IAAM,CAAC,MAAM;AAC9B,IAAAA;AAEJ,SAAOH,EAAO,MAAME,GAAOC,CAAG,EAAE,MAAM,IAAI,EAAE,IAAIN,CAAS,EAAE,KAAKE,CAAS;AAC7E;AAIA,SAASE,GAAQX,GAAOc,GAAInH,GAAO;AAC/B,SAAImH,aAAc,SACPd,EAAM,QAAQc,GAAInH,CAAK,IAC3BmH,EAAG,OAAO,SAAUd,GAAOc,GAAI;AAAE,WAAOd,EAAM,QAAQc,GAAInH,CAAK;AAAA,EAAE,GAAIqG,CAAK;AACrF;ACWO,SAAS2B,GAAU/B,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;ACvCO,SAASgC,GAAa5B,GAAOC,GAAS;AACzC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7BF,GAAOC,GAAON,GAAS,EAAE,WAAW,KAAK,WAAWiC,MAAa1B,CAAO,CAAC;AACpF;ACsCO,SAASN,GAAUC,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;AC5CA,IAAIC,KAAuB,CAAC,sBAAsB,sBAAsB,GAEpEC,KAAuB;AAIpB,SAASC,GAAOC,GAAOC,GAAS;AACnC,EAAIA,MAAY,WAAUA,IAAU,CAAA;AAMpC,WALIC,IAAKD,EAAQ,aAAaE,IAAcD,MAAO,SAASL,KAAuBK,GAAIE,IAAKH,EAAQ,aAAaI,IAAcD,MAAO,SAASN,KAAuBM,GAAIE,IAAKL,EAAQ,WAAWM,IAAYD,MAAO,SAASX,KAAYW,GAAIE,IAAKP,EAAQ,WAAWQ,IAAYD,MAAO,SAAS,MAAMA,GACpSE,IAASC,GAAQA,GAAQX,GAAOG,GAAa,QAAQ,GAAGE,GAAa,IAAI,GACzEO,IAAQ,GACRC,IAAMH,EAAO,QAEVA,EAAO,OAAOE,CAAK,MAAM;AAC5B,IAAAA;AACJ,SAAOF,EAAO,OAAOG,IAAM,CAAC,MAAM;AAC9B,IAAAA;AAEJ,SAAOH,EAAO,MAAME,GAAOC,CAAG,EAAE,MAAM,IAAI,EAAE,IAAIN,CAAS,EAAE,KAAKE,CAAS;AAC7E;AAIA,SAASE,GAAQX,GAAOc,GAAInH,GAAO;AAC/B,SAAImH,aAAc,SACPd,EAAM,QAAQc,GAAInH,CAAK,IAC3BmH,EAAG,OAAO,SAAUd,GAAOc,GAAI;AAAE,WAAOd,EAAM,QAAQc,GAAInH,CAAK;AAAA,EAAE,GAAIqG,CAAK;AACrF;AC3BO,SAAS6B,GAAQ7B,GAAOC,GAAS;AACpC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7BF,GAAOC,GAAON,GAAS,EAAE,WAAW,IAAG,GAAIO,CAAO,CAAC;AAC9D;ACHO,SAAS6B,GAAW9B,GAAOC,GAAS;AACvC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7ByB,GAAY1B,GAAON,GAAS,EAAE,WAAW,IAAG,GAAIO,CAAO,CAAC;AACnE;ACFA,IAAI8B,KAAmB;AAAA,EACnB,IAAI;AAAA,IACA,QAAQ;AAAA,IACR,KAAK;AAAA,MACD,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,IACP;AAAA,EACJ;AAAA,EACD,IAAI;AAAA,IACA,QAAQ;AAAA,IACR,KAAK;AAAA,MACD,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,IACP;AAAA,EACJ;AAAA,EACD,IAAI;AAAA,IACA,QAAQ;AAAA,IACR,KAAK;AAAA,MACD,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACN;AAAA,EACJ;AACL;AAIO,SAASC,GAAgBpC,GAAKqC,GAAQ;AACzC,MAAIC,IAAOH,GAAiBE,EAAO,YAAW,CAAE;AAChD,SACWtC,GADPuC,IACiBtC,EAAI,QAAQsC,EAAK,QAAQ,SAAUpQ,GAAG;AAAE,WAAOoQ,EAAK,IAAIpQ,CAAC;AAAA,EAAI,CAAA,IACjE8N,CADkE;AAEvF;AAIO,SAASD,GAAUC,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;;;;;;AC5CA,IAAIC,KAAuB,CAAC,sBAAsB,sBAAsB,GAEpEC,KAAuB;AAIpB,SAASC,GAAOC,GAAOC,GAAS;AACnC,EAAIA,MAAY,WAAUA,IAAU,CAAA;AAMpC,WALIC,IAAKD,EAAQ,aAAaE,IAAcD,MAAO,SAASL,KAAuBK,GAAIE,IAAKH,EAAQ,aAAaI,IAAcD,MAAO,SAASN,KAAuBM,GAAIE,IAAKL,EAAQ,WAAWM,IAAYD,MAAO,SAASX,KAAYW,GAAIE,IAAKP,EAAQ,WAAWQ,IAAYD,MAAO,SAAS,MAAMA,GACpSE,IAASC,GAAQA,GAAQX,GAAOG,GAAa,QAAQ,GAAGE,GAAa,IAAI,GACzEO,IAAQ,GACRC,IAAMH,EAAO,QAEVA,EAAO,OAAOE,CAAK,MAAM;AAC5B,IAAAA;AACJ,SAAOF,EAAO,OAAOG,IAAM,CAAC,MAAM;AAC9B,IAAAA;AAEJ,SAAOH,EAAO,MAAME,GAAOC,CAAG,EAAE,MAAM,IAAI,EAAE,IAAIN,CAAS,EAAE,KAAKE,CAAS;AAC7E;AAIA,SAASE,GAAQX,GAAOc,GAAInH,GAAO;AAC/B,SAAImH,aAAc,SACPd,EAAM,QAAQc,GAAInH,CAAK,IAC3BmH,EAAG,OAAO,SAAUd,GAAOc,GAAI;AAAE,WAAOd,EAAM,QAAQc,GAAInH,CAAK;AAAA,EAAE,GAAIqG,CAAK;AACrF;AC3BO,SAASmC,GAAUnC,GAAOC,GAAS;AACtC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7B4B,GAAQ7B,GAAON,GAAS,EAAE,WAAW,IAAG,GAAIO,CAAO,CAAC;AAC/D;ACHO,SAASmC,GAASpC,GAAOC,GAAS;AACrC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7B4B,GAAQ7B,GAAON,GAAS,EAAE,WAAW,IAAG,GAAIO,CAAO,CAAC;AAC/D;ACuCO,SAASN,GAAUC,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;AC5CA,IAAIC,KAAuB,CAAC,sBAAsB,sBAAsB,GAEpEC,KAAuB;AAIpB,SAASC,GAAOC,GAAOC,GAAS;AACnC,EAAIA,MAAY,WAAUA,IAAU,CAAA;AAMpC,WALIC,IAAKD,EAAQ,aAAaE,IAAcD,MAAO,SAASL,KAAuBK,GAAIE,IAAKH,EAAQ,aAAaI,IAAcD,MAAO,SAASN,KAAuBM,GAAIE,IAAKL,EAAQ,WAAWM,IAAYD,MAAO,SAASX,KAAYW,GAAIE,IAAKP,EAAQ,WAAWQ,IAAYD,MAAO,SAAS,MAAMA,GACpSE,IAASC,GAAQA,GAAQX,GAAOG,GAAa,QAAQ,GAAGE,GAAa,IAAI,GACzEO,IAAQ,GACRC,IAAMH,EAAO,QAEVA,EAAO,OAAOE,CAAK,MAAM;AAC5B,IAAAA;AACJ,SAAOF,EAAO,OAAOG,IAAM,CAAC,MAAM;AAC9B,IAAAA;AAEJ,SAAOH,EAAO,MAAME,GAAOC,CAAG,EAAE,MAAM,IAAI,EAAE,IAAIN,CAAS,EAAE,KAAKE,CAAS;AAC7E;AAIA,SAASE,GAAQX,GAAOc,GAAInH,GAAO;AAC/B,SAAImH,aAAc,SACPd,EAAM,QAAQc,GAAInH,CAAK,IAC3BmH,EAAG,OAAO,SAAUd,GAAOc,GAAI;AAAE,WAAOd,EAAM,QAAQc,GAAInH,CAAK;AAAA,EAAE,GAAIqG,CAAK;AACrF;AC1BO,SAASqC,GAAsBrC,GAAOgB,GAAO;AAChD,MAAIN,IAASV,EAAM,YAAa;AAChC,SAAIgB,MAAU,IACHQ,GAAed,CAAM,IACzBA;AACX;AACO,SAAS4B,GAAatC,GAAOC,GAAS;AACzC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7BF,GAAOC,GAAON,GAAS,EAAE,WAAW,KAAK,WAAW2C,MAAyBpC,CAAO,CAAC;AAChG;ACVO,SAASsC,GAAUvC,GAAOC,GAAS;AACtC,SAAIA,MAAY,WAAUA,IAAU,CAAA,IAC7B4B,GAAQ7B,GAAON,GAAS,EAAE,WAAW,IAAG,GAAIO,CAAO,CAAC;AAC/D;;;;;;;;;;;;;;;;;;;;;ACFO,SAASuC,GAAexC,GAAO;AAClC,SAAOA,EAAM,OAAO,CAAC,EAAE,YAAW,IAAKA,EAAM,OAAO,CAAC;AACzD;;;;;ACLO,SAASyC,GAAWzC,GAAO;AAE9B,WADIU,IAAS,IACJnE,IAAI,GAAGA,IAAIyD,EAAM,QAAQzD;AAC9B,IAAAmE,KACI,KAAK,OAAM,IAAK,MAAMV,EAAMzD,CAAC,EAAE,gBAAgByD,EAAMzD,CAAC,EAAE,YAAa;AAE7E,SAAOmE;AACX;;;;;ACPO,SAASgC,GAAS1C,GAAO;AAE5B,WADIU,IAAS,IACJnE,IAAI,GAAGA,IAAIyD,EAAM,QAAQzD,KAAK;AACnC,QAAIoG,IAAQ3C,EAAMzD,CAAC,EAAE,YAAa;AAClC,IAAAmE,KAAUV,EAAMzD,CAAC,MAAMoG,IAAQ3C,EAAMzD,CAAC,EAAE,YAAW,IAAKoG;AAAA,EAChE;AACI,SAAOjC;AACX;;;;;ACPA,IAAIkC,KAAc,4JACdC,KAAS,iBACTC,KAAa,MACbC,KAAiB,kBACjBC,KAAuB;AACpB,SAASC,GAAUjD,GAAO;AAI7B,WAHIU,IAAS,IACT5O,IAEIA,IAAI+Q,GAAO,KAAK7C,CAAK,OAAO,QAAM;AACtC,QAAIkD,IAAQpR,EAAE,CAAC,GAAGkP,IAAQlP,EAAE;AAC5B;AAAA;AAAA,MAEA,CAACiR,GAAe,KAAKG,CAAK;AAAA,OAErB,CAACN,GAAY,KAAKM,CAAK,KACpBlC,MAAU,KACVA,IAAQkC,EAAM,WAAWlD,EAAM;AAAA,OAElCA,EAAM,OAAOgB,IAAQkC,EAAM,MAAM,MAAM,OACpCJ,GAAW,KAAK9C,EAAM,OAAOgB,IAAQkC,EAAM,SAAS,CAAC,CAAC;AAAA,MAAI;AAE9D,MAAAxC,KAAUwC,EAAM,QAAQF,IAAsB,SAAUlR,GAAG;AAAE,eAAOA,EAAE,YAAa;AAAA,OAAG;AACtF;AAAA,IACZ;AACQ,IAAA4O,KAAUwC;AAAA,EAClB;AACI,SAAOxC;AACX;;;;;ACzBA,IAAIqB,KAAmB;AAAA,EACnB,IAAI;AAAA,IACA,QAAQ;AAAA,IACR,KAAK;AAAA,MACD,GAAG;AAAA,IACN;AAAA,EACJ;AAAA,EACD,IAAI;AAAA,IACA,QAAQ;AAAA,IACR,KAAK;AAAA,MACD,GAAG;AAAA,IACN;AAAA,EACJ;AAAA,EACD,IAAI;AAAA,IACA,QAAQ;AAAA,IACR,KAAK;AAAA,MACD,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACR;AAAA,EACJ;AACL;AAIO,SAASoB,GAAgBvD,GAAKqC,GAAQ;AACzC,MAAIC,IAAOH,GAAiBE,EAAO,YAAW,CAAE;AAChD,SACWN,GADPO,IACiBtC,EAAI,QAAQsC,EAAK,QAAQ,SAAUpQ,GAAG;AAAE,WAAOoQ,EAAK,IAAIpQ,CAAC;AAAA,EAAI,CAAA,IACjE8N,CADkE;AAEvF;AAIO,SAAS+B,GAAU/B,GAAK;AAC3B,SAAOA,EAAI,YAAa;AAC5B;;;;;;ACvCO,SAASwD,GAAYpD,GAAO;AAC/B,SAAOA,EAAM,YAAa,MAAKA,KAASA,EAAM,YAAW,MAAOA;AACpE;;;;;ACFO,SAASqD,GAAYrD,GAAO;AAC/B,SAAOA,EAAM,YAAa,MAAKA,KAASA,EAAM,YAAW,MAAOA;AACpE;;;;;;;;UCJA,OAAO,eAAesD,IAAS,cAAc,EAAE,OAAO,IAAM,GACzCA,GAAA,cAAGA,iBAAsBA,GAAA,iBAAyBA,GAAuB,kBAAGA,eAAoBA,GAAA,YAAoBA,GAAgB,WAAGA,gBAAqBA,GAAA,iBAAyBA,GAAuB,kBAAGA,eAAoBA,GAAA,YAAoBA,GAAoB,eAAGA,cAAmBA,GAAA,aAAqBA,GAAiB,YAAGA,YAAiBA,GAAA,aAAqBA,GAAe,UAAGA,kBAAuBA,GAAA,cAAsBA,GAAiB,YAAG;AACtd,MAAIC,IAAa5R,IACb6R,IAAa1F,IACb2F,IAAkBC,IAClBC,IAAcC,IACdC,IAAYC,IACZC,IAAaC,IACbC,IAAaC,IACbC,IAAkBC,IAClBC,IAAeC,IACfC,IAAeC;AAEF,SAAAlB,GAAA,YAAGC,EAAW,WACZD,GAAA,cAAGC,EAAW,aACbD,GAAA,eAAGC,EAAW,cACnBD,GAAA,UAAGC,EAAW,SACXD,GAAA,aAAGC,EAAW,YAClBD,GAAA,SAAGC,EAAW,QACXD,GAAA,YAAGC,EAAW,WACbD,GAAA,aAAGC,EAAW,YAChBD,GAAA,WAAGC,EAAW,UACVD,GAAA,eAAGC,EAAW,cACjBD,GAAA,YAAGC,EAAW,WAEdD,GAAA,YAAGE,EAAW,WACRF,GAAA,kBAAGE,EAAW,iBACfF,GAAA,iBAAGG,EAAgB,gBACvBH,GAAA,aAAGK,EAAY,YACjBL,GAAA,WAAGO,EAAU,UACZP,GAAA,YAAGS,EAAW,WACdT,GAAA,YAAGW,EAAW,WACRX,GAAA,kBAAGW,EAAW,iBACfX,GAAA,iBAAGa,EAAgB,gBACtBb,GAAA,cAAGe,EAAa,aAChBf,GAAA,cAAGiB,EAAa;;;AC9B5B,MAAME,KAAqC,MAAM;AAAC;ACWlD,SAASC,GAAYA,GAAmD;AAC7E,SAAO,CAAC/K,MAAa;AACnB+K,IAAAA,EAAS/K,CAAK;AAAA,EAChB;AACF;ACEgB,SAAAgL,GACdD,GACA/K,GACA;AACA,SAAO,MAAM;AACX,IAAA+K,EAAS/K,CAAK;AAAA,EAChB;AACF;;;;AC9BA,KAAC,SAAS8E,GAAElM,GAAE;AAAsD,MAAAmM,EAAA,UAAenM,EAAC;AAAA,IAAkI,GAAEoM,IAAM,WAAU;AAAc,UAAIF,IAAE,EAAC,MAAK,GAAE,OAAM,GAAE,KAAI,GAAE,MAAK,GAAE,QAAO,GAAE,QAAO,EAAC,GAAElM,IAAE,CAAE;AAAC,aAAO,SAASR,GAAE,GAAE8M,GAAE;AAAC,YAAID,GAAEzM,IAAE,SAASsM,GAAE1M,GAAEwK,GAAE;AAAO,UAAGA,MAAH,WAAOA,IAAE,CAAE;AAAE,cAAIsC,IAAE,IAAI,KAAKJ,CAAC,GAAEG,IAAE,SAASH,GAAE1M,GAAE;AAAC,YAASA,MAAT,WAAaA,IAAE,CAAE;AAAE,gBAAIwK,IAAExK,EAAE,gBAAc,SAAQ8M,IAAEJ,IAAE,MAAIlC,GAAEqC,IAAErM,EAAEsM,CAAC;AAAE,mBAAOD,MAAIA,IAAE,IAAI,KAAK,eAAe,SAAQ,EAAC,QAAO,IAAG,UAASH,GAAE,MAAK,WAAU,OAAM,WAAU,KAAI,WAAU,MAAK,WAAU,QAAO,WAAU,QAAO,WAAU,cAAalC,EAAC,CAAC,GAAEhK,EAAEsM,CAAC,IAAED,IAAGA;AAAA,UAAC,EAAE7M,GAAEwK,CAAC;AAAE,iBAAOqC,EAAE,cAAcC,CAAC;AAAA,QAAC,GAAEI,IAAE,SAAS1M,GAAER,GAAE;AAAC,mBAAQwK,IAAEpK,EAAEI,GAAER,CAAC,GAAE6M,IAAE,CAAA,GAAGK,IAAE,GAAEA,IAAE1C,EAAE,QAAO0C,KAAG,GAAE;AAAC,gBAAIvN,IAAE6K,EAAE0C,CAAC,GAAEhH,IAAEvG,EAAE,MAAKI,IAAEJ,EAAE,OAAMQ,IAAEuM,EAAExG,CAAC;AAAE,YAAA/F,KAAG,MAAI0M,EAAE1M,CAAC,IAAE,SAASJ,GAAE,EAAE;AAAA,UAAE;AAAC,cAAIQ,IAAEsM,EAAE,CAAC,GAAE/M,IAAOS,MAAL,KAAO,IAAEA,GAAEiN,IAAEX,EAAE,CAAC,IAAE,MAAIA,EAAE,CAAC,IAAE,MAAIA,EAAE,CAAC,IAAE,MAAI/M,IAAE,MAAI+M,EAAE,CAAC,IAAE,MAAIA,EAAE,CAAC,IAAE,QAAON,IAAE,CAAC/L;AAAE,kBAAOsM,EAAE,IAAIU,CAAC,EAAE,QAAS,KAAEjB,KAAGA,IAAE,QAAM;AAAA,QAAG,GAAE5M,IAAE,EAAE;AAAU,QAAAA,EAAE,KAAG,SAAS+M,GAAElM,GAAE;AAAO,UAAGkM,MAAH,WAAOA,IAAEG;AAAG,cAAI7M,GAAEwK,IAAE,KAAK,UAAW,GAACpK,IAAE,KAAK,OAAM,GAAG8M,IAAE9M,EAAE,eAAe,SAAQ,EAAC,UAASsM,EAAC,CAAC,GAAE/M,IAAE,KAAK,OAAOS,IAAE,IAAI,KAAK8M,CAAC,KAAG,MAAI,EAAE,GAAEhH,IAAE,KAAG,CAAC,KAAK,MAAM9F,EAAE,kBAAiB,IAAG,EAAE,IAAET;AAAE,cAAG,CAAC,OAAOuG,CAAC,EAAE,CAAAlG,IAAE,KAAK,UAAU,GAAEQ,CAAC;AAAA,mBAAUR,IAAE8M,EAAEI,GAAE,EAAC,QAAO,KAAK,GAAE,CAAC,EAAE,KAAK,eAAc,KAAK,GAAG,EAAE,UAAUhH,GAAE,EAAE,GAAE1F,GAAE;AAAC,gBAAIT,IAAEC,EAAE,UAAW;AAAC,YAAAA,IAAEA,EAAE,IAAIwK,IAAEzK,GAAE,QAAQ;AAAA,UAAC;AAAC,iBAAOC,EAAE,GAAG,YAAU0M,GAAE1M;AAAA,QAAC,GAAEL,EAAE,aAAW,SAAS+M,GAAE;AAAC,cAAIlM,IAAE,KAAK,GAAG,aAAWsM,EAAE,GAAG,MAAO,GAAC9M,IAAEI,EAAE,KAAK,QAAS,GAACI,GAAE,EAAC,cAAakM,EAAC,CAAC,EAAE,KAAM,SAASA,GAAE;AAAC,mBAAuBA,EAAE,KAAK,kBAAxB;AAAA,UAAqC,CAAC;AAAG,iBAAO1M,KAAGA,EAAE;AAAA,QAAK;AAAE,YAAIkG,IAAEvG,EAAE;AAAQ,QAAAA,EAAE,UAAQ,SAAS+M,GAAElM,GAAE;AAAC,cAAG,CAAC,KAAK,MAAI,CAAC,KAAK,GAAG,UAAU,QAAO0F,EAAE,KAAK,MAAKwG,GAAElM,CAAC;AAAE,cAAIR,IAAE8M,EAAE,KAAK,OAAO,yBAAyB,GAAE,EAAC,QAAO,KAAK,GAAE,CAAC;AAAE,iBAAO5G,EAAE,KAAKlG,GAAE0M,GAAElM,CAAC,EAAE,GAAG,KAAK,GAAG,WAAU,EAAE;AAAA,QAAC,GAAEsM,EAAE,KAAG,SAASJ,GAAElM,GAAER,GAAE;AAAC,cAAIwK,IAAExK,KAAGQ,GAAEJ,IAAEJ,KAAGQ,KAAGqM,GAAElN,IAAEuN,EAAE,CAACJ,EAAG,GAAC1M,CAAC;AAAE,cAAa,OAAOsM,KAAjB,SAAmB,QAAOI,EAAEJ,CAAC,EAAE,GAAGtM,CAAC;AAAE,cAAI8F,IAAE,SAASwG,GAAElM,GAAER,GAAE;AAAC,gBAAIwK,IAAEkC,IAAE,KAAGlM,IAAE,KAAIsM,IAAEI,EAAE1C,GAAExK,CAAC;AAAE,gBAAGQ,MAAIsM,EAAE,QAAM,CAACtC,GAAEhK,CAAC;AAAE,gBAAIqM,IAAEK,EAAE1C,KAAG,MAAIsC,IAAEtM,KAAG,KAAIR,CAAC;AAAE,mBAAO8M,MAAID,IAAE,CAACrC,GAAEsC,CAAC,IAAE,CAACJ,IAAE,KAAG,KAAK,IAAII,GAAED,CAAC,IAAE,KAAI,KAAK,IAAIC,GAAED,CAAC,CAAC;AAAA,UAAC,EAAEC,EAAE,IAAIJ,GAAElC,CAAC,EAAE,QAAS,GAAC7K,GAAES,CAAC,GAAEL,IAAEmG,EAAE,CAAC,GAAE/F,IAAE+F,EAAE,CAAC,GAAE3F,IAAEuM,EAAE/M,CAAC,EAAE,UAAUI,CAAC;AAAE,iBAAOI,EAAE,GAAG,YAAUH,GAAEG;AAAA,QAAC,GAAEuM,EAAE,GAAG,QAAM,WAAU;AAAC,iBAAO,KAAK,eAAc,EAAG,gBAAiB,EAAC;AAAA,QAAQ,GAAEA,EAAE,GAAG,aAAW,SAASJ,GAAE;AAAC,UAAAG,IAAEH;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA;;;;;;;ACA3oE,KAAC,SAASA,GAAElC,GAAE;AAAsD,MAAAmC,EAAA,UAAenC,EAA8H;AAAA,IAAA,GAAEoC,IAAM,WAAU;AAAc,UAAIF,IAAE,UAASlC,IAAE,wBAAuBhK,IAAE;AAAe,aAAO,SAAS0F,GAAEvG,GAAEK,GAAE;AAAC,YAAI,IAAEL,EAAE;AAAU,QAAAK,EAAE,MAAI,SAAS0M,GAAE;AAAC,cAAIlC,IAAE,EAAC,MAAKkC,GAAE,KAAI,IAAG,MAAK,UAAS;AAAE,iBAAO,IAAI/M,EAAE6K,CAAC;AAAA,QAAC,GAAE,EAAE,MAAI,SAASA,GAAE;AAAC,cAAIhK,IAAER,EAAE,KAAK,OAAM,GAAG,EAAC,QAAO,KAAK,IAAG,KAAI,GAAE,CAAC;AAAE,iBAAOwK,IAAEhK,EAAE,IAAI,KAAK,UAAS,GAAGkM,CAAC,IAAElM;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAOR,EAAE,KAAK,OAAM,GAAG,EAAC,QAAO,KAAK,IAAG,KAAI,GAAE,CAAC;AAAA,QAAC;AAAE,YAAI8M,IAAE,EAAE;AAAM,UAAE,QAAM,SAASJ,GAAE;AAAC,UAAAA,EAAE,QAAM,KAAK,KAAG,KAAI,KAAK,OAAM,EAAG,EAAEA,EAAE,OAAO,MAAI,KAAK,UAAQA,EAAE,UAASI,EAAE,KAAK,MAAKJ,CAAC;AAAA,QAAC;AAAE,YAAIG,IAAE,EAAE;AAAK,UAAE,OAAK,WAAU;AAAC,cAAG,KAAK,IAAG;AAAC,gBAAIH,IAAE,KAAK;AAAG,iBAAK,KAAGA,EAAE,eAAc,GAAG,KAAK,KAAGA,EAAE,YAAa,GAAC,KAAK,KAAGA,EAAE,WAAY,GAAC,KAAK,KAAGA,EAAE,UAAS,GAAG,KAAK,KAAGA,EAAE,YAAa,GAAC,KAAK,KAAGA,EAAE,cAAe,GAAC,KAAK,KAAGA,EAAE,cAAe,GAAC,KAAK,MAAIA,EAAE;UAAoB,MAAM,CAAAG,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAIzM,IAAE,EAAE;AAAU,UAAE,YAAU,SAAS8F,GAAEvG,GAAE;AAAC,cAAIK,IAAE,KAAK,SAAS;AAAE,cAAGA,EAAEkG,CAAC,EAAE,QAAO,KAAK,KAAG,IAAElG,EAAE,KAAK,OAAO,IAAEI,EAAE,KAAK,IAAI,IAAE,KAAK;AAAQ,cAAa,OAAO8F,KAAjB,aAAqBA,IAAE,SAASwG,GAAE;YAAUA,iBAAIA,IAAE;AAAI,gBAAIxG,IAAEwG,EAAE,MAAMlC,CAAC;AAAE,gBAAG,CAACtE,EAAE,QAAO;AAAK,gBAAIvG,KAAG,KAAGuG,EAAE,CAAC,GAAG,MAAM1F,CAAC,KAAG,CAAC,KAAI,GAAE,CAAC,GAAER,IAAEL,EAAE,CAAC,GAAEuN,IAAE,KAAG,CAACvN,EAAE,CAAC,IAAG,CAACA,EAAE,CAAC;AAAE,mBAAWuN,MAAJ,IAAM,IAAQlN,MAAN,MAAQkN,IAAE,CAACA;AAAA,UAAC,EAAEhH,CAAC,GAASA,MAAP,MAAU,QAAO;AAAK,cAAIgH,IAAE,KAAK,IAAIhH,CAAC,KAAG,KAAG,KAAGA,IAAEA,GAAE4G,IAAE;AAAK,cAAGnN,EAAE,QAAOmN,EAAE,UAAQI,GAAEJ,EAAE,KAAO5G,MAAJ,GAAM4G;AAAE,cAAO5G,MAAJ,GAAM;AAAC,gBAAI2G,IAAE,KAAK,KAAG,KAAK,OAAM,EAAG,kBAAmB,IAAC,KAAG,KAAK,UAAW;AAAC,aAACC,IAAE,KAAK,MAAK,EAAG,IAAII,IAAEL,GAAEH,CAAC,GAAG,UAAQQ,GAAEJ,EAAE,GAAG,eAAaD;AAAA,UAAC,MAAM,CAAAC,IAAE,KAAK,IAAK;AAAC,iBAAOA;AAAA,QAAC;AAAE,YAAIU,IAAE,EAAE;AAAO,UAAE,SAAO,SAASd,GAAE;AAAC,cAAIlC,IAAEkC,MAAI,KAAK,KAAG,2BAAyB;AAAI,iBAAOc,EAAE,KAAK,MAAKhD,CAAC;AAAA,QAAC,GAAE,EAAE,UAAQ,WAAU;AAAC,cAAIkC,IAAE,KAAK,OAAQ,EAAC,EAAE,KAAK,OAAO,IAAE,IAAE,KAAK,WAAS,KAAK,GAAG,gBAAc,KAAK,GAAG;AAAqB,iBAAO,KAAK,GAAG,QAAO,IAAG,MAAIA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAM,CAAC,CAAC,KAAK;AAAA,QAAE,GAAE,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,OAAQ,EAAC,YAAW;AAAA,QAAE,GAAE,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,OAAQ,EAAC,YAAa;AAAA,QAAA;AAAE,YAAI5M,IAAE,EAAE;AAAO,UAAE,SAAO,SAAS4M,GAAE;AAAC,iBAAYA,MAAN,OAAS,KAAK,UAAQ1M,EAAE,KAAK,OAAO,yBAAyB,CAAC,EAAE,OAAQ,IAACF,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAIK,IAAE,EAAE;AAAK,UAAE,OAAK,SAASuM,GAAElC,GAAEhK,GAAE;AAAC,cAAGkM,KAAG,KAAK,OAAKA,EAAE,GAAG,QAAOvM,EAAE,KAAK,MAAKuM,GAAElC,GAAEhK,CAAC;AAAE,cAAI0F,IAAE,KAAK,MAAK,GAAGvG,IAAEK,EAAE0M,CAAC,EAAE;AAAQ,iBAAOvM,EAAE,KAAK+F,GAAEvG,GAAE6K,GAAEhK,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA;;;;ACuB1sEiN,GAAM,OAAOoF,EAAO;AACpBpF,GAAM,OAAOqF,EAAG;AAChBrF,GAAM,GAAG,WAAWhB,EAAgB;ACX7B,SAASsG,MAA6B9Q,GAAoB;AAC/D,WAASuI,IAAI,GAAGA,IAAIvI,EAAK,QAAQuI;AAE3B,QAAAvI,EAAKuI,CAAC,KAAK,QAAQvI,EAAKuI,CAAC,MAAMvI,EAAKuI,CAAC;AACvC,aAAOvI,EAAKuI,CAAC;AAGV,SAAAvI,EAAKA,EAAK,SAAS,CAAC;AAC7B;ACXAwL,GAAM,OAAOuF,EAAO;;;;;;;;;;ACJpB,KAAC,WAAY;AAGZ,UAAIC,IAAS,CAAA,EAAG;AAEhB,eAAS5G,IAAa;AAGrB,iBAFI6G,IAAU,CAAE,GAEP1I,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,cAAI2I,IAAM,UAAU3I,CAAC;AACrB,cAAK2I,GAEL;AAAA,gBAAIC,IAAU,OAAOD;AAErB,gBAAIC,MAAY,YAAYA,MAAY;AACvC,cAAAF,EAAQ,KAAKC,CAAG;AAAA,qBACN,MAAM,QAAQA,CAAG;AAC3B,kBAAIA,EAAI,QAAQ;AACf,oBAAIE,IAAQhH,EAAW,MAAM,MAAM8G,CAAG;AACtC,gBAAIE,KACHH,EAAQ,KAAKG,CAAK;AAAA,cAExB;AAAA,uBACcD,MAAY;AACtB,kBAAID,EAAI,aAAa,OAAO,UAAU;AACrC,yBAASnK,KAAOmK;AACf,kBAAIF,EAAO,KAAKE,GAAKnK,CAAG,KAAKmK,EAAInK,CAAG,KACnCkK,EAAQ,KAAKlK,CAAG;AAAA;AAIlB,gBAAAkK,EAAQ,KAAKC,EAAI,UAAU;AAAA;AAAA,QAGhC;AAEE,eAAOD,EAAQ,KAAK,GAAG;AAAA,MACzB;AAEC,MAAqCvG,EAAO,WAC3CN,EAAW,UAAUA,GACrBM,YAAiBN,KAOjB,OAAO,aAAaA;AAAA,IAEtB;;;;;;;;;;;;;;;;;;;;;;ACjCA,SAASiH,GAAO;AAAA,EACd,UAAA9H;AAAA,EACA,OAAApJ;AAAA,EACA,WAAAgK,IAAY;AAAA,EACZ,MAAAmH,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,kBAAAC,IAAmB;AAAA,EACnB,MAAAC,IAAO;AAAA,EACP,GAAGhP;AACL,GAAG;AACK,QAAAiP,IAAY,IAAIvR,CAAK,IAErBiK,IAAauH;AAAA,IACjBC,GAAO;AAAA,IACP;AAAA,MACE,CAACA,GAAO,cAAc,CAAC,GAAGH;AAAA,MAC1B,CAACG,GAAO,2BAA2B,CAAC,GAAGJ;AAAA,MACvC,CAACI,GAAO,qBAAqB,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MACvD,CAACO,GAAO,eAAe,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MACjD,CAACO,GAAO,gBAAgB,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MAClD,CAACO,GAAO,eAAe,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MACjD,CAACO,GAAO,qBAAqB,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MACvD,CAACO,GAAO,cAAc,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MAChD,CAACO,GAAO,eAAe,CAAC,GACtBL,KACAD,MAASD,GAAO,MAAM,eACtBC,MAASD,GAAO,MAAM;AAAA,MACxB,CAACO,GAAO,YAAY,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MAC9C,CAACO,GAAO,YAAY,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MAC9C,CAACO,GAAO,YAAY,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MAC9C,CAACO,GAAO,YAAY,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MAC9C,CAACO,GAAO,YAAY,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,MAC9C,CAACO,GAAO,YAAY,CAAC,GAAGN,MAASD,GAAO,MAAM;AAAA,IAChD;AAAA,IACAlH;AAAA,EACF;AACA,+BACGuH,GAAW,EAAA,GAAGjP,GAAO,WAAW2H,GAC9B,UAAAb,GACH;AAEJ;AAEA8H,GAAO,QAAQ;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA,EACb,MAAM;AAAA,EACN,aAAa;AAAA,EACb,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEO,SAASQ,GAAK;AAAA,EACnB,MAAAP,IAAO;AAAA,EACP,UAAA/H;AAAA,EACA,WAAAY;AAAA,EACA,OAAA2H;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,kBAAAR,IAAmB;AAAA,EACnB,UAAAS;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAiDI;AACF,MAAI,CAAC/I;AACI,WAAA;AAGH,QAAAgJ,IAAUR,IAAY,MAAM;AAElC,MAAIS,IAAmBjJ;AACvB,EAAI,OAAOA,KAAa,YAAY0I,KAAY1I,EAAS,SAAS0I,MAChEO,IAAmBjJ,EAAS,MAAM,GAAG0I,CAAQ,EAAE,SAAS;AAGpD,QAAAQ,IACJ,UAAOD,KAAqB,YAC5BP,MACCO,EAAiB,SAASP,KAAYT;AAKvC,SAAA9H,gBAAAA,EAAA;AAAA,IAAC6I;AAAA,IAAA;AAAA,MACC,OAAOE,KAAY,OAAOlJ,KAAa,WAAWA,IAAW;AAAA,MAC5D,GAAIwI,KAAa,EAAE,MAAM,YAAY;AAAA,MACrC,GAAGO;AAAA,MACJ,WAAWX;AAAA,QACTC,GAAO;AAAA,QACP;AAAA,UACE,CAACA,GAAO,iBAAiB,CAAC,GAAGG;AAAA,UAC7B,CAACH,GAAO,YAAY,CAAC,GAAGI;AAAA,UACxB,CAACJ,GAAO,uBAAuB,CAAC,GAAGN,MAAS;AAAA,UAC5C,CAACM,GAAO,yBAAyB,CAAC,GAAGN,MAAS;AAAA,UAC9C,CAACM,GAAO,uBAAuB,CAAC,GAAGN,MAAS;AAAA,UAC5C,CAACM,GAAO,wBAAwB,CAAC,GAAGN,MAAS;AAAA,UAC7C,CAACM,GAAO,mBAAmB,CAAC,GAAGN,MAAS;AAAA,UACxC,CAACM,GAAO,aAAa,CAAC,GAAGN,MAAS;AAAA,UAClC,CAACM,GAAO,eAAe,CAAC,GAAGN,MAAS;AAAA,UACpC,CAACM,GAAO,aAAa,CAAC,GAAGN,MAAS;AAAA,UAClC,CAACM,GAAO,mBAAmB,CAAC,GAAGN,MAAS;AAAA,UACxC,CAACM,GAAO,iBAAiB,CAAC,GAAGN,MAAS;AAAA,UACtC,CAACM,GAAO,sBAAsB,CAAC,GAAGN,MAAS;AAAA,UAC3C,CAACM,GAAO,uBAAuB,CAAC,GAAGO,MAAc;AAAA,UACjD,CAACP,GAAO,yBAAyB,CAAC,GAAGO,MAAc;AAAA,UACnD,CAACP,GAAO,wBAAwB,CAAC,GAAGO,MAAc;AAAA,UAClD,CAACP,GAAO,0BAA0B,CAAC,GAAGO,MAAc;AAAA,UACpD,CAACP,GAAO,YAAY,CAAC,GAAGQ,MAAS;AAAA,UACjC,CAACR,GAAO,iBAAiB,CAAC,GAAGS,MAAc;AAAA,UAC3C,CAACT,GAAO,mBAAmB,CAAC,GAAGJ;AAAA,UAC/B,CAACI,GAAO,mBAAmB,CAAC,GAAGM,MAAa;AAAA,UAC5C,CAACN,GAAO,mBAAmB,CAAC,GAAGM,MAAa;AAAA,UAC5C,CAACN,GAAO,mBAAmB,CAAC,GAAGM,MAAa;AAAA,UAC5C,CAACN,GAAO,mBAAmB,CAAC,GAAGM,MAAa;AAAA,QAC9C;AAAA,QACA/H;AAAA,MACF;AAAA,MACA,OAAO,EAAE,OAAO2H,MAAU,OAAOA,IAAQ,OAAU;AAAA,MAElD,UAAAU;AAAA,IAAA;AAAA,EACH;AAEJ;;;;ACtIe,SAASE,GAA8B3P,GAAQ4P,GAAU;AACtE,MAAI5P,KAAU,KAAM,QAAO,CAAE;AAC7B,MAAI6P,IAAS,CAAE,GACXC,IAAa,OAAO,KAAK9P,CAAM,GAC/BgE,GAAK;AACT,OAAK,IAAI,GAAG,IAAI8L,EAAW,QAAQ;AAEjC,IADA9L,IAAM8L,EAAW,CAAC,GACd,EAAAF,EAAS,QAAQ5L,CAAG,KAAK,OAC7B6L,EAAO7L,CAAG,IAAIhE,EAAOgE,CAAG;AAE1B,SAAO6L;AACT;ACXe,SAASE,KAAW;AACjCA,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAI,IAAK,SAAUF,GAAQ;AAClE,aAASrK,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AACzC,UAAIxF,IAAS,UAAUwF,CAAC;AACxB,eAASxB,KAAOhE;AACd,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQgE,CAAG,MAClD6L,EAAO7L,CAAG,IAAIhE,EAAOgE,CAAG;AAAA,IAGlC;AACI,WAAO6L;AAAA,EACR,GACME,GAAS,MAAM,MAAM,SAAS;AACvC;ACbe,SAASC,GAAuBtM,GAAM;AACnD,MAAIA,MAAS;AACX,UAAM,IAAI,eAAe,2DAA2D;AAEtF,SAAOA;AACT;ACLe,SAASuM,GAAgBnI,GAAG7M,GAAG;AAC5CgV,SAAAA,KAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAyBnI,GAAG7M,GAAG;AACtG,WAAA6M,EAAE,YAAY7M,GACP6M;AAAA,EACR,GACMmI,GAAgBnI,GAAG7M,CAAC;AAC7B;ACLe,SAASiV,GAAeC,GAAUC,GAAY;AAC3D,EAAAD,EAAS,YAAY,OAAO,OAAOC,EAAW,SAAS,GACvDD,EAAS,UAAU,cAAcA,GACjCE,GAAeF,GAAUC,CAAU;AACrC;;;;;;;;;;;;;;ACIa,MAAI9U,IAAe,OAAO,UAApB,cAA4B,OAAO,KAAIH,IAAEG,IAAE,OAAO,IAAI,eAAe,IAAE,OAAMC,IAAED,IAAE,OAAO,IAAI,cAAc,IAAE,OAAME,IAAEF,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAMX,IAAEW,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAMD,IAAEC,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAMkN,IAAElN,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAMT,IAAES,IAAE,OAAO,IAAI,eAAe,IAAE,OAAMR,IAAEQ,IAAE,OAAO,IAAI,kBAAkB,IAAE,OAAMP,IAAEO,IAAE,OAAO,IAAI,uBAAuB,IAAE,OAAMN,IAAEM,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAML,IAAEK,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAMJ,IAAEI,IACpf,OAAO,IAAI,qBAAqB,IAAE,OAAMuM,IAAEvM,IAAE,OAAO,IAAI,YAAY,IAAE,OAAMoM,IAAEpM,IAAE,OAAO,IAAI,YAAY,IAAE,OAAM,IAAEA,IAAE,OAAO,IAAI,aAAa,IAAE,OAAMgN,IAAEhN,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAM4E,IAAE5E,IAAE,OAAO,IAAI,iBAAiB,IAAE,OAAM0M,IAAE1M,IAAE,OAAO,IAAI,aAAa,IAAE;AAClQ,WAASgV,EAAElV,GAAE;AAAC,QAAc,OAAOA,KAAlB,YAA4BA,MAAP,MAAS;AAAC,UAAI8M,IAAE9M,EAAE;AAAS,cAAO8M,GAAG;AAAA,QAAA,KAAK/M;AAAE,kBAAOC,IAAEA,EAAE,MAAKA,GAAC;AAAA,YAAE,KAAKN;AAAA,YAAE,KAAKC;AAAA,YAAE,KAAKS;AAAA,YAAE,KAAKH;AAAA,YAAE,KAAKV;AAAA,YAAE,KAAKM;AAAE,qBAAOG;AAAA,YAAE;AAAQ,sBAAOA,IAAEA,KAAGA,EAAE,UAASA,GAAC;AAAA,gBAAE,KAAKP;AAAA,gBAAE,KAAKG;AAAA,gBAAE,KAAK0M;AAAA,gBAAE,KAAKG;AAAA,gBAAE,KAAKW;AAAE,yBAAOpN;AAAA,gBAAE;AAAQ,yBAAO8M;AAAA,cAAC;AAAA,UAAC;AAAA,QAAC,KAAK3M;AAAE,iBAAO2M;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAASqI,EAAEnV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIL;AAAA,EAAC;AAAC,SAAAyV,GAAiB,YAAC1V,GAAE0V,GAAA,iBAAuBzV,GAAEyV,GAAuB,kBAAC3V,GAAE2V,qBAAwBhI,GAAEgI,GAAA,UAAgBrV,GAAEqV,GAAkB,aAACxV,GAAEwV,GAAA,WAAiBhV,GAAEgV,GAAY,OAAC9I,GAAE8I,UAAa3I,GAAE2I,GAAA,SAAejV,GAChfiV,GAAA,WAAiBnV,GAAEmV,GAAA,aAAmB7V,GAAE6V,GAAA,WAAiBvV,GAAEuV,GAAA,cAAoB,SAASpV,GAAE;AAAC,WAAOmV,EAAEnV,CAAC,KAAGkV,EAAElV,CAAC,MAAIN;AAAA,EAAC,GAAE0V,GAAwB,mBAACD,GAAEC,GAAyB,oBAAC,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIP;AAAA,EAAC,GAAE2V,GAAyB,oBAAC,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIoN;AAAA,EAAC,GAAEgI,GAAiB,YAAC,SAASpV,GAAE;AAAC,WAAiB,OAAOA,KAAlB,YAA4BA,MAAP,QAAUA,EAAE,aAAWD;AAAA,EAAC,GAAEqV,GAAoB,eAAC,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIJ;AAAA,EAAC,GAAEwV,GAAkB,aAAC,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAII;AAAA,EAAC,GAAEgV,GAAc,SAAC,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIsM;AAAA,EAAC,GAC1d8I,GAAA,SAAe,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIyM;AAAA,EAAC,GAAE2I,cAAiB,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIG;AAAA,EAAC,GAAEiV,GAAkB,aAAC,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIC;AAAA,EAAC,GAAEmV,GAAA,eAAqB,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIT;AAAA,EAAC,GAAE6V,GAAkB,aAAC,SAASpV,GAAE;AAAC,WAAOkV,EAAElV,CAAC,MAAIH;AAAA,EAAC,GAChNuV,GAAA,qBAAC,SAASpV,GAAE;AAAC,WAAiB,OAAOA,KAAlB,YAAkC,OAAOA,KAApB,cAAuBA,MAAII,KAAGJ,MAAIL,KAAGK,MAAIC,KAAGD,MAAIT,KAAGS,MAAIH,KAAGG,MAAIF,KAAc,OAAOE,KAAlB,YAA4BA,MAAP,SAAWA,EAAE,aAAWsM,KAAGtM,EAAE,aAAWyM,KAAGzM,EAAE,aAAWoN,KAAGpN,EAAE,aAAWP,KAAGO,EAAE,aAAWJ,KAAGI,EAAE,aAAWkN,KAAGlN,EAAE,aAAW8E,KAAG9E,EAAE,aAAW4M,KAAG5M,EAAE,aAAW;AAAA,EAAE,GAAEoV,GAAc,SAACF;;;;;;;;;;;;;wBCD/T,QAAQ,IAAI,aAAa,gBAC1B,WAAW;AAKd,QAAIG,IAAY,OAAO,UAAW,cAAc,OAAO,KACnD9U,IAAqB8U,IAAY,OAAO,IAAI,eAAe,IAAI,OAC/D7U,IAAoB6U,IAAY,OAAO,IAAI,cAAc,IAAI,OAC7D5U,IAAsB4U,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjE3U,IAAyB2U,IAAY,OAAO,IAAI,mBAAmB,IAAI,OACvE1U,IAAsB0U,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjEzU,IAAsByU,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjExU,IAAqBwU,IAAY,OAAO,IAAI,eAAe,IAAI,OAG/DC,IAAwBD,IAAY,OAAO,IAAI,kBAAkB,IAAI,OACrEE,IAA6BF,IAAY,OAAO,IAAI,uBAAuB,IAAI,OAC/EvU,IAAyBuU,IAAY,OAAO,IAAI,mBAAmB,IAAI,OACvEtU,IAAsBsU,IAAY,OAAO,IAAI,gBAAgB,IAAI,OACjErU,IAA2BqU,IAAY,OAAO,IAAI,qBAAqB,IAAI,OAC3EpU,IAAkBoU,IAAY,OAAO,IAAI,YAAY,IAAI,OACzDnU,IAAkBmU,IAAY,OAAO,IAAI,YAAY,IAAI,OACzDG,IAAmBH,IAAY,OAAO,IAAI,aAAa,IAAI,OAC3DI,IAAyBJ,IAAY,OAAO,IAAI,mBAAmB,IAAI,OACvEK,IAAuBL,IAAY,OAAO,IAAI,iBAAiB,IAAI,OACnEM,IAAmBN,IAAY,OAAO,IAAI,aAAa,IAAI;AAE/D,aAAS1S,EAAmBC,GAAM;AAChC,aAAO,OAAOA,KAAS,YAAY,OAAOA,KAAS;AAAA,MACnDA,MAASnC,KAAuBmC,MAAS2S,KAA8B3S,MAASjC,KAAuBiC,MAASlC,KAA0BkC,MAAS7B,KAAuB6B,MAAS5B,KAA4B,OAAO4B,KAAS,YAAYA,MAAS,SAASA,EAAK,aAAa1B,KAAmB0B,EAAK,aAAa3B,KAAmB2B,EAAK,aAAahC,KAAuBgC,EAAK,aAAa/B,KAAsB+B,EAAK,aAAa9B,KAA0B8B,EAAK,aAAa6S,KAA0B7S,EAAK,aAAa8S,KAAwB9S,EAAK,aAAa+S,KAAoB/S,EAAK,aAAa4S;AAAA,IACplB;AAEA,aAASI,EAAOrM,GAAQ;AACtB,UAAI,OAAOA,KAAW,YAAYA,MAAW,MAAM;AACjD,YAAIsM,KAAWtM,EAAO;AAEtB,gBAAQsM,IAAQ;AAAA,UACd,KAAKtV;AACH,gBAAIqC,KAAO2G,EAAO;AAElB,oBAAQ3G,IAAI;AAAA,cACV,KAAK0S;AAAA,cACL,KAAKC;AAAA,cACL,KAAK9U;AAAA,cACL,KAAKE;AAAA,cACL,KAAKD;AAAA,cACL,KAAKK;AACH,uBAAO6B;AAAA,cAET;AACE,oBAAIkT,KAAelT,MAAQA,GAAK;AAEhC,wBAAQkT,IAAY;AAAA,kBAClB,KAAKjV;AAAA,kBACL,KAAKC;AAAA,kBACL,KAAKI;AAAA,kBACL,KAAKD;AAAA,kBACL,KAAKL;AACH,2BAAOkV;AAAA,kBAET;AACE,2BAAOD;AAAA,gBACvB;AAAA,YAEA;AAAA,UAEM,KAAKrV;AACH,mBAAOqV;AAAA,QACf;AAAA,MACA;AAAA,IAGC;AAED,QAAIE,IAAYT,GACZU,IAAiBT,GACjBU,IAAkBpV,GAClBqV,IAAkBtV,GAClBuV,IAAU5V,GACV6V,IAAatV,GACbuV,IAAW5V,GACX6V,IAAOpV,GACPqV,IAAOtV,GACPuV,IAAShW,GACTiW,IAAW9V,GACX+V,IAAahW,GACbiW,IAAW5V,GACX6V,IAAsC;AAE1C,aAASC,EAAYtN,GAAQ;AAEzB,aAAKqN,MACHA,IAAsC,IAEtC,QAAQ,KAAQ,+KAAyL,IAItME,EAAiBvN,CAAM,KAAKqM,EAAOrM,CAAM,MAAM+L;AAAA,IACxD;AACA,aAASwB,EAAiBvN,GAAQ;AAChC,aAAOqM,EAAOrM,CAAM,MAAMgM;AAAA,IAC5B;AACA,aAASwB,EAAkBxN,GAAQ;AACjC,aAAOqM,EAAOrM,CAAM,MAAM1I;AAAA,IAC5B;AACA,aAASmW,EAAkBzN,GAAQ;AACjC,aAAOqM,EAAOrM,CAAM,MAAM3I;AAAA,IAC5B;AACA,aAASqW,EAAU1N,GAAQ;AACzB,aAAO,OAAOA,KAAW,YAAYA,MAAW,QAAQA,EAAO,aAAahJ;AAAA,IAC9E;AACA,aAAS2W,EAAa3N,GAAQ;AAC5B,aAAOqM,EAAOrM,CAAM,MAAMzI;AAAA,IAC5B;AACA,aAASqW,EAAW5N,GAAQ;AAC1B,aAAOqM,EAAOrM,CAAM,MAAM9I;AAAA,IAC5B;AACA,aAAS2W,EAAO7N,GAAQ;AACtB,aAAOqM,EAAOrM,CAAM,MAAMrI;AAAA,IAC5B;AACA,aAASmW,EAAO9N,GAAQ;AACtB,aAAOqM,EAAOrM,CAAM,MAAMtI;AAAA,IAC5B;AACA,aAASqW,EAAS/N,GAAQ;AACxB,aAAOqM,EAAOrM,CAAM,MAAM/I;AAAA,IAC5B;AACA,aAAS+W,GAAWhO,GAAQ;AAC1B,aAAOqM,EAAOrM,CAAM,MAAM5I;AAAA,IAC5B;AACA,aAAS6W,EAAajO,GAAQ;AAC5B,aAAOqM,EAAOrM,CAAM,MAAM7I;AAAA,IAC5B;AACA,aAAS+W,GAAWlO,GAAQ;AAC1B,aAAOqM,EAAOrM,CAAM,MAAMxI;AAAA,IAC5B;AAEA,IAAA2W,GAAA,YAAoB3B,GACpB2B,GAAA,iBAAyB1B,GACzB0B,GAAA,kBAA0BzB,GAC1ByB,GAAA,kBAA0BxB,GAC1BwB,GAAA,UAAkBvB,GAClBuB,GAAA,aAAqBtB,GACrBsB,GAAA,WAAmBrB,GACnBqB,GAAA,OAAepB,GACfoB,GAAA,OAAenB,GACfmB,GAAA,SAAiBlB,GACjBkB,GAAA,WAAmBjB,GACnBiB,GAAA,aAAqBhB,GACrBgB,GAAA,WAAmBf,GACnBe,GAAA,cAAsBb,GACtBa,GAAA,mBAA2BZ,GAC3BY,GAAA,oBAA4BX,GAC5BW,GAAA,oBAA4BV,GAC5BU,GAAA,YAAoBT,GACpBS,GAAA,eAAuBR,GACvBQ,GAAA,aAAqBP,GACrBO,GAAA,SAAiBN,GACjBM,GAAA,SAAiBL,GACjBK,GAAA,WAAmBJ,GACnBI,GAAA,aAAqBH,IACrBG,GAAA,eAAuBF,GACvBE,GAAA,aAAqBD,IACrBC,GAAA,qBAA6B/U,GAC7B+U,GAAA,SAAiB9B;AAAA,EACjB,EAAM;;;;wBCjLF,QAAQ,IAAI,aAAa,eAC3B+B,GAAA,UAAiBnY,GAA2C,IAE5DmY,GAAA,UAAiBhM,GAAwC;;;;;;ACH3D,MAAIiM,IAAUpY,GAAmB,GAM7BqY,IAAgB;AAAA,IAClB,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,cAAc;AAAA,IACd,cAAc;AAAA,IACd,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,0BAA0B;AAAA,IAC1B,0BAA0B;AAAA,IAC1B,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,MAAM;AAAA,EACP,GACGC,IAAgB;AAAA,IAClB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,EACR,GACGC,IAAsB;AAAA,IACxB,UAAY;AAAA,IACZ,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,aAAa;AAAA,IACb,WAAW;AAAA,EACZ,GACGC,IAAe;AAAA,IACjB,UAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,aAAa;AAAA,IACb,WAAW;AAAA,IACX,MAAM;AAAA,EACP,GACGC,IAAe,CAAE;AACrB,EAAAA,EAAaL,EAAQ,UAAU,IAAIG,GACnCE,EAAaL,EAAQ,IAAI,IAAII;AAE7B,WAASE,EAAWC,GAAW;AAE7B,WAAIP,EAAQ,OAAOO,CAAS,IACnBH,IAIFC,EAAaE,EAAU,QAAW,KAAKN;AAAA,EAChD;AAEA,MAAIO,IAAiB,OAAO,gBACxBC,IAAsB,OAAO,qBAC7BC,IAAwB,OAAO,uBAC/BC,IAA2B,OAAO,0BAClCC,IAAiB,OAAO,gBACxBC,IAAkB,OAAO;AAC7B,WAASC,EAAqBC,GAAiBC,GAAiBC,GAAW;AACzE,QAAI,OAAOD,KAAoB,UAAU;AAEvC,UAAIH,GAAiB;AACnB,YAAIK,IAAqBN,EAAeI,CAAe;AAEvD,QAAIE,KAAsBA,MAAuBL,KAC/CC,EAAqBC,GAAiBG,GAAoBD,CAAS;AAAA,MAE3E;AAEI,UAAI/N,IAAOuN,EAAoBO,CAAe;AAE9C,MAAIN,MACFxN,IAAOA,EAAK,OAAOwN,EAAsBM,CAAe,CAAC;AAM3D,eAHIG,IAAgBb,EAAWS,CAAe,GAC1CK,IAAgBd,EAAWU,CAAe,GAErCxO,IAAI,GAAGA,IAAIU,EAAK,QAAQ,EAAEV,GAAG;AACpC,YAAIxB,IAAMkC,EAAKV,CAAC;AAEhB,YAAI,CAAC0N,EAAclP,CAAG,KAAK,EAAEiQ,KAAaA,EAAUjQ,CAAG,MAAM,EAAEoQ,KAAiBA,EAAcpQ,CAAG,MAAM,EAAEmQ,KAAiBA,EAAcnQ,CAAG,IAAI;AAC7I,cAAIqQ,IAAaV,EAAyBK,GAAiBhQ,CAAG;AAE9D,cAAI;AAEF,YAAAwP,EAAeO,GAAiB/P,GAAKqQ,CAAU;AAAA,UAChD,QAAW;AAAA,UAAA;AAAA,QACpB;AAAA,MACA;AAAA,IACA;AAEE,WAAON;AAAA,EACT;AAEA,SAAAO,KAAiBR;;;;AC7FjB,SAASS,GAAUC,GAAWC,GAAS;AACrC,MAAI,CAAAD,GACJ;AAAA,QAAI1X,IAAQ,IAAI,MAAM,eAAe2X,CAAO;AAC5C,UAAA3X,EAAM,cAAc,GACpBA,EAAM,OAAO,uBACPA;AAAA;AACR;AAMA,IAAI4X,KACJ,gBAAAhZ,GAAM,cAAe,GAcjBiZ,KAAkB;AAAA,EACpB,eAAe,CAAA;AACjB,GAEIC,KAAiB,WACjBC,KAAkB,YAClBC,KAAkB;AAEtB,SAASC,GAAmBC,GAAM;AAChC,SAAI,OAAOA,KAAS,aACX;AAAA,IACL,cAAcA;AAAA,IACd,SAAS,WAAmB;AAAA,IAE3B;AAAA,IACD,WAAW,WAAqB;AAAA,IAEtC;AAAA,EACK,IAGIA;AACT;AAEA,IAAIC,KAAqB,SAA4B1T,GAAW;AAC9D,SAAO,SAAU7B,GAAO;AACtB,WAAOhE,GAAM,cAAcgZ,GAAQ,UAAU,MAAM,SAAUQ,GAAW;AACtE,aAAOxZ,GAAM,cAAc6F,GAAW,OAAO,OAAO;AAAA,QAClD,kBAAkB2T;AAAA,MACnB,GAAExV,CAAK,CAAC;AAAA,IACf,CAAK;AAAA,EACF;AACH,GAEIyV,KAAW,SAAkB5N,GAAG;AAClC,SAAOA;AACT;AAEA,SAAS6N,GAAeC,GAAM;AAC5B,MAAIC,IAAwBD,EAAK,yBAC7BE,IAA0BD,MAA0B,SAASH,KAAWG,GACxEE,IAAUH,EAAK,QACfI,IAASJ,EAAK;AAElB,WAASK,EAASC,GAAqBzM,GAAS;AAC9C,IAAIA,MAAY,WACdA,IAAU,CAAE;AAGd,QAAI8L,IAAOD,GAAmBY,CAAmB,GAC7CC,IAAQ,CAAE;AAQd,aAASC,EAAanW,GAAO;AAC3B,aAAIwJ,EAAQ,WACHA,EAAQ,SAASxJ,CAAK,IAG3BsV,EAAK,UACAA,EAAK,QAAQtV,CAAK,IAGpB;AAAA,IACb;AAUI,aAASoW,EAAQnO,GAAQjI,GAAOqW,GAAU;AACxC,UAAIxU,IAAY2H,EAAQ,mBAAmBA,EAAQ,iBAAiBvB,GAAQjI,CAAK,IAAI6V,EAAwB5N,CAAM;AAEnH,UAAIuB,EAAQ,oBAAoB,CAACnL,GAAkB,mBAACwD,CAAS;AAC3D,cAAM,IAAI,MAAM,oEAAoE;AAGtF,aAAAuS,GAAqBiC,GAAUxU,GAAW;AAAA,QACxC,SAAS;AAAA,MACjB,CAAO,GACMA;AAAA,IACb;AAEI,QAAIyU,IAEJ,yBAAUC,GAAkB;AAC1B,MAAA/F,GAAe8F,GAAeC,CAAgB,GAE9CD,EAAc,2BAA2B,SAAkCtW,GAAOwW,GAAO;AACvF,YAAIC,IAAWN,EAAanW,CAAK;AAEjC,eAAOqQ,GAAS,CAAE,GAAEmG,GAAO;AAAA,UACzB,UAAUC;AAAA;AAAA,UAEV,SAASD,EAAM,WAAWA,EAAM,aAAaC;AAAA,QACvD,CAAS;AAAA,MACF;AAED,eAASH,EAActW,GAAO;AAC5B,YAAI0W;AAWJ,eATAA,IAAQH,EAAiB,KAAK,MAAMvW,CAAK,KAAK,MAC9C0W,EAAM,QAAQ;AAAA,UACZ,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,SAAS;AAAA,UACT,UAAUP,EAAanW,CAAK;AAAA,QAC7B,GACD6U,GAAU,CAAC7U,EAAM,oBAAoBsV,EAAK,aAAa,0DAA0D,GAE7GtV,EAAM,oBAEJwJ,EAAQ,QAAQ,OAMpB8L,EAAK,aAAatV,CAAK,EAAE,MAAS,WAAY;AAC5C,iBAAO;AAAA,QACnB,CAAW,GAED0W,EAAM,SAAU,GAEhB1W,EAAM,iBAAiB,SAASsV,EAAK,UAAUtV,CAAK,CAAC,IAE9CsQ,GAAuBoG,CAAK,MAOjClN,EAAQ,QAAQ;AAAA,SACpB8L,EAAK,WAAWA,EAAK,QAAQtV,CAAK;AAAA,QAClCsV,EAAK,aAAaL,GAAgB,cAAcK,EAAK,UAAUtV,CAAK,CAAC,MACnE0W,EAAM,SAAU,GAGXA;AAAA,MACf;AAEM,UAAIC,IAASL,EAAc;AAE3B,aAAAK,EAAO,oBAAoB,WAA6B;AACtD,aAAK,UAAU;AAEf,YAAIC,IAAgB,KAAK;AAEzB,QAAIA,KAAiBA,EAAc,WAAWxB,MAC5C,KAAK,SAAU,GAIb,KAAK,MAAM,WACb,KAAK,UAAW;AAAA,MAEnB,GAEDuB,EAAO,qBAAqB,SAA4BE,GAAWC,GAAW;AAE5E,QAAIA,EAAU,aAAa,KAAK,MAAM,YACpC,KAAK,UAAW;AAAA,MAEnB,GAEDH,EAAO,uBAAuB,WAAgC;AAC5D,aAAK,UAAU;AAAA,MAChB,GAEDA,EAAO,eAAe,SAAsBI,GAAWC,GAAU;AAC/D,QAAI,KAAK,WACP,KAAK,SAASD,GAAWC,CAAQ;AAAA,MAE3C,GAOML,EAAO,cAAc,WAAuB;AAC1C,eAAOR,EAAa,KAAK,KAAK;AAAA,MACtC,GAMMQ,EAAO,WAAW,WAAoB;AACpC,eAAOT,EAAM,KAAK,aAAa;AAAA,MACvC,GAMMS,EAAO,WAAW,SAAkBzT,GAAO;AACzC,QAAIA,MAAU,WACZA,IAAQ,SAGVgT,EAAM,KAAK,YAAa,CAAA,IAAIhT;AAAA,MAC7B,GAEDyT,EAAO,gBAAgB,WAAyB;AAC9C,YAAIM,IAAS;AAEb,QAAIlB,KACF,WAAW,WAAY;AACrB,UAAAA,EAAOkB,EAAO,MAAM,QAAQA,EAAO,KAAK;AAAA,QACpD,CAAW;AAAA,MAEX,GAQMN,EAAO,WAAW,WAAoB;AAGpC,YAAK,KAAK,MAAM;AAEhB,cAAI;AACF,gBAAIO,IAAe5B,EAAK,YAAY,KAAK,KAAK,GAC1CrL,IAASmM,EAAQc,GAAc,KAAK,OAAOb,CAAQ;AACvD,iBAAK,MAAM,SAASpM,GACpB,KAAK,MAAM,UAAU;AAAA,UACtB,SAAQ7M,GAAO;AACd,oBAAQ,MAAM,+FAA+F;AAAA,cAC3G,UAAUkY,EAAK,QAAQ,KAAK,KAAK;AAAA,cACjC,WAAWA,EAAK,UAAU,KAAK,KAAK;AAAA,cACpC,OAAOlY,KAAQA,EAAM;AAAA,YACjC,CAAW,GACD,KAAK,MAAM,QAAQA;AAAA,UAC7B;AAAA,MACA,GAMMuZ,EAAO,YAAY,WAAqB;AACtC,YAAIQ,IAAS,MAETC,IAAU,KAAK,aAAc;AACjC,eAAAA,EAAQ,KAAK,SAAUF,GAAc;AACnC,cAAIjN,IAASmM,EAAQc,GAAcC,EAAO,OAAO;AAAA,YAC/C,UAAUd;AAAA,UACtB,CAAW;AAED,UAAAc,EAAO,aAAa;AAAA,YAClB,QAAQlN;AAAA,YACR,SAAS;AAAA,UACrB,GAAa,WAAY;AACb,mBAAOkN,EAAO,cAAe;AAAA,UACzC,CAAW;AAAA,QACX,CAAS,EAAE,MAAS,SAAU/Z,GAAO;AAC3B,iBAAO+Z,EAAO,aAAa;AAAA,YACzB,OAAO/Z;AAAA,YACP,SAAS;AAAA,UACrB,CAAW;AAAA,QACX,CAAS,GACMga;AAAA,MACf,GAOMT,EAAO,eAAe,WAAwB;AAC5C,YAAIU,IAAS,MAETC,IAAc,KAAK;AACA,QAAAA,EAAY,kBAChBA,EAAY;AAC3B,YAAAtX,IAAQiQ,GAA8BqH,GAAa,CAAC,oBAAoB,cAAc,CAAC,GAEvFF,IAAU,KAAK,SAAU;AAE7B,eAAKA,MACHA,IAAU9B,EAAK,aAAatV,CAAK,GACjCoX,EAAQ,SAASlC,IACjB,KAAK,SAASkC,CAAO,GACrBA,EAAQ,KAAK,WAAY;AACvB,UAAAA,EAAQ,SAASjC;AAAA,QAClB,GAAE,SAAU/X,GAAO;AAClB,kBAAQ,MAAM,gEAAgE;AAAA,YAC5E,UAAUkY,EAAK,QAAQ+B,EAAO,KAAK;AAAA,YACnC,WAAW/B,EAAK,UAAU+B,EAAO,KAAK;AAAA,YACtC,OAAOja,KAAQA,EAAM;AAAA,UACnC,CAAa,GACDga,EAAQ,SAAShC;AAAA,QAC7B,CAAW,IAGIgC;AAAA,MACR,GAEDT,EAAO,SAAS,WAAkB;AAC7B,YAACY,IAAe,KAAK,OACpBC,IAAeD,EAAa,cAC5BE,IAAeF,EAAa;AACT,QAAAA,EAAa;AAC5C,YAAYvX,IAAQiQ,GAA8BsH,GAAc,CAAC,gBAAgB,YAAY,kBAAkB,CAAC,GAEpGG,IAAc,KAAK,OACnBta,IAAQsa,EAAY,OACpBC,IAAUD,EAAY,SACtBzN,IAASyN,EAAY;AAEzB,YAAIlO,EAAQ,UAAU;AACpB,cAAIoN,IAAgB,KAAK,SAAQ,KAAM,KAAK,UAAW;AAEvD,cAAIA,EAAc,WAAW1B;AAC3B,kBAAM,KAAK,UAAW;AAAA,QAElC;AAEQ,YAAI9X;AACF,gBAAMA;AAGR,YAAIwa,IAAWH,KAAgBjO,EAAQ,YAAY;AAEnD,eAAImO,IACKC,IAGF9B,EAAQ;AAAA,UACb,UAAU8B;AAAA,UACV,QAAQ3N;AAAA,UACR,SAAST;AAAA,UACT,OAAO6G,GAAS,CAAE,GAAErQ,GAAO;AAAA,YACzB,KAAKwX;AAAA,UACN,CAAA;AAAA,QACX,CAAS;AAAA,MACF,GAEMlB;AAAA,IACb,EAAMta,GAAM,SAAS,GAEb6b,IAAwBtC,GAAmBe,CAAa,GACxDD,IAAWra,GAAM,WAAW,SAAUgE,GAAOuE,GAAK;AACpD,aAAOvI,GAAM,cAAc6b,GAAuB,OAAO,OAAO;AAAA,QAC9D,cAActT;AAAA,MACf,GAAEvE,CAAK,CAAC;AAAA,IACf,CAAK;AAED,WAAAqW,EAAS,UAAU,SAAUrW,GAAO;AAClC,MAAAsV,EAAK,aAAatV,CAAK;AAAA,IACxB,GAEDqW,EAAS,OAAO,SAAUrW,GAAO;AAC/B,aAAOsV,EAAK,aAAatV,CAAK;AAAA,IAC/B,GAEMqW;AAAA,EACX;AAEE,WAASyB,EAAKxC,GAAM9L,GAAS;AAC3B,WAAOwM,EAASV,GAAMjF,GAAS,CAAA,GAAI7G,GAAS;AAAA,MAC1C,UAAU;AAAA,IAChB,CAAK,CAAC;AAAA,EACN;AAEE,SAAO;AAAA,IACL,UAAUwM;AAAA,IACV,MAAM8B;AAAA,EACP;AACH;AAEA,SAASjC,GAAwBqB,GAAc;AAE7C,SAAOA,EAAa,aAAaA,EAAa,UAAaA,EAAa,WAAcA;AACxF;AAIA,IAAIa,KAEJ,gBAAArC,GAAe;AAAA,EACb,yBAAyBG;AAAA,EACzB,QAAQ,SAAgBF,GAAM;AAC5B,QAAI9T,IAAY8T,EAAK,QACjB3V,IAAQ2V,EAAK;AACjB,WAAO3Z,GAAM,cAAc6F,GAAW7B,CAAK;AAAA,EAC/C;AACA,CAAC,GACGgW,KAAW+B,GAAgB,UAC3BD,KAAOC,GAAgB,MAIvBC,KAEJ,gBAAAtC,GAAe;AAAA,EACb,QAAQ,SAAgBzL,GAAQjK,GAAO;AACrC,IAAIiK,KAAUjK,EAAM,iBACd,OAAOA,EAAM,gBAAiB,aAChCA,EAAM,aAAaiK,CAAM,IAEzBjK,EAAM,aAAa,UAAUiK;AAAA,EAGlC;AAAA,EACD,QAAQ,SAAgB0L,GAAM;AAC5B,QAAI1L,IAAS0L,EAAK,QACd3V,IAAQ2V,EAAK;AAEjB,WAAI3V,EAAM,WACDA,EAAM,SAASiK,CAAM,IAGvB;AAAA,EACX;AACA,CAAC,GACGgO,KAAaD,GAAkB,UAC/BE,KAASF,GAAkB,MA+E3BG,KAAanC;AACjBmC,GAAW,MAAMF;AACjB,IAAIG,KAASN;AACbM,GAAO,MAAMF;ACjhBN,SAASG,EAAmD;AAAA,EACjE,QAAApQ;AAAA,EACA,WAAA4L;AAAA,EACA,UAAA+D;AACF,GAO+B;AAK7B,SAAO5B,GAAS/N,GAAQ;AAAA,IACtB,kBAAkB4L;AAAA,IAClB,UAAA+D;AAAA,EAAA,CACD;AACH;ACnCO,MAAMU,KAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,KAGT;AAAA,EACF,UAAUF,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,aAAaoQ,EAAe;AAAA,IAC1B,QAAQ,MAAM,OAAO,4BAAqB;AAAA,IAC1C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,aAAaoQ,EAAe;AAAA,IAC1B,QAAQ,MAAM,OAAO,2BAAoB;AAAA,IACzC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,2BAAoB;AAAA,IACzC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,aAAaoQ,EAAe;AAAA,IAC1B,QAAQ,MAAM,OAAO,2BAAoB;AAAA,IACzC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,WAAWoQ,EAAe;AAAA,IACxB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,gBAAgBoQ,EAAe;AAAA,IAC7B,QAAQ,MAAM,OAAO,8BAAuB;AAAA,IAC5C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,SAASoQ,EAAe;AAAA,IACtB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,KAAKoQ,EAAe;AAAA,IAClB,QAAQ,MAAM,OAAO,oBAAa;AAAA,IAClC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,SAASoQ,EAAe;AAAA,IACtB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,KAAKoQ,EAAe;AAAA,IAClB,QAAQ,MAAM,OAAO,oBAAa;AAAA,IAClC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,cAAcoQ,EAAe;AAAA,IAC3B,QAAQ,MAAM,OAAO,4BAAqB;AAAA,IAC1C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,WAAWoQ,EAAe;AAAA,IACxB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,WAAWoQ,EAAe;AAAA,IACxB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,WAAWoQ,EAAe;AAAA,IACxB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,+BAAwB;AAAA,IAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,WAAWoQ,EAAe;AAAA,IACxB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,SAASoQ,EAAe;AAAA,IACtB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,6BAAsB;AAAA,IAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,2BAAoB;AAAA,IACzC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,KAAKoQ,EAAe;AAAA,IAClB,QAAQ,MAAM,OAAO,oBAAa;AAAA,IAClC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,mBAAmBoQ,EAAe;AAAA,IAChC,QAAQ,MAAM,OAAO,gCAAyB;AAAA,IAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,yBAAyBoQ,EAAe;AAAA,IACtC,QAAQ,MAAM,OAAO,qCAA8B;AAAA,IACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,sBAAsBoQ,EAAe;AAAA,IACnC,QAAQ,MAAM,OAAO,mCAA4B;AAAA,IACjD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,uBAAuBoQ,EAAe;AAAA,IACpC,QAAQ,MAAM,OAAO,oCAA6B;AAAA,IAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,mBAAmBoQ,EAAe;AAAA,IAChC,QAAQ,MAAM,OAAO,gCAAyB;AAAA,IAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,mBAAmBoQ,EAAe;AAAA,IAChC,QAAQ,MAAM,OAAO,gCAAyB;AAAA,IAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,qBAAqBoQ,EAAe;AAAA,IAClC,QAAQ,MAAM,OAAO,kCAA2B;AAAA,IAChD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,yBAAyBoQ,EAAe;AAAA,IACtC,QAAQ,MAAM,OAAO,oCAA6B;AAAA,IAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,mBAAmBoQ,EAAe;AAAA,IAChC,QAAQ,MAAM,OAAO,gCAAyB;AAAA,IAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,qBAAqBoQ,EAAe;AAAA,IAClC,QAAQ,MAAM,OAAO,kCAA2B;AAAA,IAChD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,8BAAuB;AAAA,IAC5C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,2BAA2BoQ,EAAe;AAAA,IACxC,QAAQ,MAAM,OAAO,sCAA+B;AAAA,IACpD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,oBAAoBoQ,EAAe;AAAA,IACjC,QAAQ,MAAM,OAAO,iCAA0B;AAAA,IAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,sBAAsBoQ,EAAe;AAAA,IACnC,QAAQ,MAAM,OAAO,mCAA4B;AAAA,IACjD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,wBAAwBoQ,EAAe;AAAA,IACrC,QAAQ,MAAM,OAAO,oCAA6B;AAAA,IAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,6BAAsB;AAAA,IAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,cAAcoQ,EAAe;AAAA,IAC3B,QAAQ,MAAM,OAAO,6BAAsB;AAAA,IAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,aAAaoQ,EAAe;AAAA,IAC1B,QAAQ,MAAM,OAAO,2BAAoB;AAAA,IACzC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,kBAAkBoQ,EAAe;AAAA,IAC/B,QAAQ,MAAM,OAAO,+BAAwB;AAAA,IAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,+BAAwB;AAAA,IAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,aAAaoQ,EAAe;AAAA,IAC1B,QAAQ,MAAM,OAAO,4BAAqB;AAAA,IAC1C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,SAASoQ,EAAe;AAAA,IACtB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,SAASoQ,EAAe;AAAA,IACtB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,kBAAkBoQ,EAAe;AAAA,IAC/B,QAAQ,MAAM,OAAO,gCAAyB;AAAA,IAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,SAASoQ,EAAe;AAAA,IACtB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,6BAAsB;AAAA,IAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,wBAAwBoQ,EAAe;AAAA,IACrC,QAAQ,MAAM,OAAO,qCAA8B;AAAA,IACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,gBAAgBoQ,EAAe;AAAA,IAC7B,QAAQ,MAAM,OAAO,8BAAuB;AAAA,IAC5C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,WAAWoQ,EAAe;AAAA,IACxB,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,+BAAwB;AAAA,IAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,aAAaoQ,EAAe;AAAA,IAC1B,QAAQ,MAAM,OAAO,2BAAoB;AAAA,IACzC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,+BAAwB;AAAA,IAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,gBAAgBoQ,EAAe;AAAA,IAC7B,QAAQ,MAAM,OAAO,8BAAuB;AAAA,IAC5C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,SAASoQ,EAAe;AAAA,IACtB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,4BAAqB;AAAA,IAC1C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,6BAAsB;AAAA,IAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,oBAAoBoQ,EAAe;AAAA,IACjC,QAAQ,MAAM,OAAO,iCAA0B;AAAA,IAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA;AAAA;AAAA,EAKD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,4BAAqB;AAAA,IAC1C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,6BAAsB;AAAA,IAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,OAAOoQ,EAAe;AAAA,IACpB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,gBAAgBoQ,EAAe;AAAA,IAC7B,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,aAAaoQ,EAAe;AAAA,IAC1B,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,MAAMoQ,EAAe;AAAA,IACnB,QAAQ,MAAM,OAAO,uBAAgB;AAAA,IACrC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,kBAAkBoQ,EAAe;AAAA,IAC/B,QAAQ,MAAM,OAAO,yBAAkB;AAAA,IACvC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,cAAcoQ,EAAe;AAAA,IAC3B,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,YAAYoQ,EAAe;AAAA,IACzB,QAAQ,MAAM,OAAO,2BAAoB;AAAA,IACzC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,iBAAiBoQ,EAAe;AAAA,IAC9B,QAAQ,MAAM,OAAO,0BAAmB;AAAA,IACxC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,eAAeoQ,EAAe;AAAA,IAC5B,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,qBAAc;AAAA,IACnC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,QAAQoQ,EAAe;AAAA,IACrB,QAAQ,MAAM,OAAO,sBAAe;AAAA,IACpC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAAA,CAC/B;AAAA,EACD,UAAUoQ,EAAe;AAAA,IACvB,QAAQ,MAAM,OAAO,wBAAiB;AAAA,IACtC,WAAW,CAACpQ,MAAWA,EAAO;AAAA,EAC/B,CAAA;AACH,GChiBauQ,KAAU,CACrBnJ,GACAoJ,MACG;AACG,QAAAC,IAAOH,GAAQE,CAAI;AACzB,SAAKC,IAKDzR,gBAAAA,MAAA8K,EAAAA,UAAA,EAAA,UAAA9K,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,QAAQoI;AAAA,MACR,gBAAe;AAAA,MACf,eAAc;AAAA,MACd,kBAAiB;AAAA,MACjB,aAAY;AAAA,MAEZ,UAACpI,gBAAAA,EAAA,IAAAyR,GAAA,EAAK,SAAQ,WAAU,OAAArJ,EAAc,CAAA;AAAA,IAAA;AAAA,EAAA,GAE1C,IAdO;AAgBX,GAEasJ,KAAO,CAClBtJ,GACAoJ,MACG;AACG,QAAAC,IAAOH,GAAQE,CAAI;AACzB,SAAKC,IAKDzR,gBAAAA,MAAA8K,EAAAA,UAAA,EAAA,UAAA9K,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,QAAQoI;AAAA,MACR,gBAAe;AAAA,MACf,eAAc;AAAA,MACd,kBAAiB;AAAA,MACjB,aAAY;AAAA,MAEZ,UAACpI,gBAAAA,EAAA,IAAAyR,GAAA,EAAK,SAAQ,QAAO,OAAArJ,EAAc,CAAA;AAAA,IAAA;AAAA,EAAA,GAEvC,IAdO;AAgBX,GAEauJ,KAAS,CACpBvJ,GACAoJ,MACG;AACG,QAAAC,IAAOH,GAAQE,CAAI;AACzB,SAAKC,IAKDzR,gBAAAA,MAAA8K,EAAAA,UAAA,EAAA,UAAA9K,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAMoI;AAAA,MACN,gBAAe;AAAA,MACf,eAAc;AAAA,MACd,kBAAiB;AAAA,MAEjB,UAACpI,gBAAAA,EAAA,IAAAyR,GAAA,EAAK,SAAQ,UAAS,OAAArJ,EAAc,CAAA;AAAA,IAAA;AAAA,EAAA,GAEzC,IAZO;AAcX,GAEawJ,KAAY;AAAA,EACvB,SAAAL;AAAA,EACA,MAAAG;AAAA,EACA,QAAAC;AACF;ACGO,SAASF,GAAK;AAAA,EACnB,MAAAD;AAAA,EACA,WAAA/Q,IAAY;AAAA,EACZ,eAAeoR;AAAA,EACf,OAAAzJ,IAAQ0J,GAAO;AAAA,EACf,MAAAlK,IAAO;AAAA,EACP,SAAAmK,IAAU;AAAA,EACV,YAAAC,IAAa;AAAA,EACb,eAAAC;AACF,GAAc;AACZ,QAAMC,IAAY;AAAA,IAChB,OAAOtK;AAAA,IACP,QAAQA;AAAA,EACV,GAEMuK,IAAUC,GAAWZ,CAAI,GACzBjK,IAAU9G,EAAU,MAAM,GAAG,GAC7B4R,IAAkBL,IACpB,EAAE,eAAe,IAAM,MAAM,QAAQ,WAAW,GAAM,IACtD,CAAC;AAEL,MAAIM,IAAY;AAEhB,SAAAvd,GAAM,UAAU,MAAM;AAChB,IAAAsc,GAAiB,SAASG,CAAI,KAGxB,QAAA;AAAA,MACN,kDAAkD,KAAK;AAAA,QACrDA;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAEJ,GAAG,EAAE,GAED3Q,GAAkB,iBAAiB0G,CAAO,IACxCa,KAAS0J,GAAO,eAKV,QAAA;AAAA,IACN,2EAA2E1J,CAAK,iCAAiCA,CAAK;AAAA,EACxH,IAIUkK,IAAAlK,GAIZpI,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAAmS;AAAA,MACA,WAAA1R;AAAA,MACA,OAAOyR;AAAA,MACP,eAAa,GAAGL,KAAc,MAAM;AAAA,MACnC,GAAII,IAAgB,EAAE,eAAAA,EAAA,IAAkB,CAAC;AAAA,MACzC,GAAGI;AAAA,MAEH,UAAUT,GAAAG,CAAO,EAAEO,GAAWd,CAAI;AAAA,IAAA;AAAA,EACrC;AAEJ;AAOA,MAAMe,KAA4B;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,KAAsB,CAAC,cAAc,gBAAgB,GAErDC,KAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,KAA4B,CAAC,kBAAkB,GAE/CC,KAAgB;AAAA,EACpB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AACd;AAEA,SAASP,GAAWZ,GAAc;AAC5B,SAAAe,GAA0B,SAASf,CAAI,IAClCmB,GAAc,aAGnBH,GAAoB,SAAShB,CAAI,IAC5BmB,GAAc,QAGnBF,GAAoB,SAASjB,CAAI,IAC5BmB,GAAc,QAGnBD,GAA0B,SAASlB,CAAI,IAClCmB,GAAc,aAGhBA,GAAc;AACvB;;;;;;;;;;;;GCzMMC,KAAgB1K,GAAO;AAkDtB,SAAS2K,GAAO9Z,GAAoB;AACnC,QAAA;AAAA,IACJ,MAAA6O,IAAO;AAAA,IACP,UAAAkL,IAAW;AAAA,IACX,OAAA1K,IAAQwK;AAAA,IACR,sBAAAG,IAAuB;AAAA,IACvB,WAAAC,IAAY;AAAA,EAAA,IACVja,GAEEka,IAAkB,MACfhL,GAAG;AAAA,IACR,CAACC,GAAO,eAAe,CAAC,GAAGN,MAAS;AAAA,IACpC,CAACM,GAAO,iBAAiB,CAAC,GAAGN,MAAS;AAAA,IACtC,CAACM,GAAO,qBAAqB,CAAC,GAAGN,MAAS;AAAA,EAAA,CAC3C,GAGGsL,IAAkBjL,GAAGC,GAAO,iBAAiB,GAAG+K,GAAiB,GAEjEE,IAAUlL,GAAG;AAAA,IACjB,CAACC,GAAO,gBAAgB,CAAC,GAAG4K;AAAA,IAC5B,CAAC5K,GAAO,8BAA8B,CAAC,GAAG6K;AAAA,EAAA,CAC3C,GAEKK,IACHpT,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAWkI,GAAO,UAAU,SAAQ,eACvC,UAAAlI,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWkI,GAAO;AAAA,MAClB,IAAG;AAAA,MACH,IAAG;AAAA,MACH,GAAE;AAAA,MACF,MAAK;AAAA,MACL,aAAY;AAAA,MACZ,kBAAiB;AAAA,MACjB,QAAQE;AAAA,IAAA;AAAA,EAAA,GAEZ;AAGF,SAAI4K,IACKI,0BAGJ,OAAI,EAAA,WAAWD,GAAS,eAAapa,EAAM,QAC1C,UAACiH,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAWkT,GACd,gCAAC,OAAI,EAAA,WAAWhL,GAAO,QAAS,UAAAkL,GAAQ,GAC1C,EACF,CAAA;AAGN;;;;;;;;;;;;;;GCpGMC,KAAU;AAAA,EACd,SAASnL,GAAO;AAAA,EAChB,OAAOA,GAAO;AAAA,EACd,OAAOA,GAAO;AAAA,EACd,QAAQA,GAAO;AAAA,EACf,QAAQA,GAAO;AAAA,EACf,eAAeA,GAAO,aAAa;AAAA,EACnC,MAAMA,GAAO;AACf;AAoCO,SAASoL,GAAO;AAAA,EACrB,MAAA1L,IAAO;AAAA,EACP,aAAA2L,IAAc;AAAA,EACd,GAAGxa;AACL,GAAgB;AACd,QAAM0H,IAAYwH,GAAGC,GAAO,QAAQmL,GAAQzL,CAAI,GAAG;AAAA,IACjD,CAACM,GAAO,UAAU,GAAG,CAACnP,EAAM;AAAA,IAC5B,CAACmP,GAAO,UAAU,GAAGqL,MAAgB;AAAA,IACrC,CAACrL,GAAO,QAAQ,GAAGqL,MAAgB;AAAA,IACnC,CAACrL,GAAO,OAAO,GAAGnP,EAAM;AAAA,EAAA,CACzB;AACM,SAAAiH,gBAAAA,MAAC,SAAI,WAAAS,GAAsB;AACpC;;;;;;;;;;;;;;;;;;;;;;;;ACmBO,SAAS+S,GAAK;AAAA,EACnB,UAAA3T;AAAA,EACA,WAAAY;AAAA,EACA,SAAAgT;AAAA,EACA,UAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,GAAGC;AACL,GAIK;AACG,QAAAC,IAAU,EAAQT,GAClBU,IAAmB,EAAQJ,GAE3BK,IAAW,CAAC,CAACd,GAcbe,IAAcD,IAChB;AAAA,IACE,SAdc,CAAC1f,MAA8C;AACjE,MAAAA,EAAE,gBAAgB,GAClB4e,KAAA,QAAAA,EAAU5e;AAAA,IACZ;AAAA,IAYM,YAViB,CAACA,MAAiD;AACvE,OAAIA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjCA,EAAE,eAAe,GACjB4e,KAAA,QAAAA,EAAU5e;AAAA,IAEd;AAAA,IAMM,UAAU;AAAA,EAAA,IAEZ,CAAC,GAEC6L,IAAauH;AAAA,IACjBC,GAAO;AAAA,IACP;AAAA,MACE,CAACA,GAAO,mBAAmB,CAAC,GAAG2L;AAAA,MAC/B,CAAC3L,GAAO,iBAAiB,CAAC,GAAG6L;AAAA,MAC7B,CAAC7L,GAAO,kBAAkB,CAAC,GAAG8L;AAAA,MAC9B,CAAC9L,GAAO,cAAc,CAAC,GAAGqM;AAAA,MAC1B,CAACrM,GAAO,qBAAqB,CAAC,GAAG4L,MAAe;AAAA,MAChD,CAAC5L,GAAO,qBAAqB,CAAC,GAAG4L,MAAe;AAAA,MAChD,CAAC5L,GAAO,cAAc,CAAC,GAAGoM;AAAA,MAC1B,CAACpM,GAAO,2BAA2B,CAAC,GAAG4L,MAAe;AAAA,MACtD,CAAC5L,GAAO,0BAA0B,CAAC,GAAG4L,MAAe;AAAA,MACrD,CAAC5L,GAAO,qBAAqB,CAAC,GAAGiM,MAAqB;AAAA,IACxD;AAAA,IACA1T;AAAA,EACF,GAEMgU,IAAgBxM,GAAGC,GAAO,UAAU,GAAGyL,GAAkB;AAAA,IAC7D,sBAAsBD,MAAa;AAAA,IACnC,wBAAwBA,MAAa;AAAA,IACrC,CAACxL,GAAO,eAAe,CAAC,GAAG0L,MAAgB;AAAA,IAC3C,CAAC1L,GAAO,gBAAgB,CAAC,GAAG0L,MAAgB;AAAA,EAAA,CAC7C,GAEKc,IAAcf,IAAmB,CAAK,IAAA,EAAE,iBAAiBD,EAAS;AAExE,SAAIY,IAEAtU,gBAAAA,EAAA;AAAA,IAAC2U;AAAA,IAAA;AAAA,MACC,gBAAAT;AAAA,MACA,cAAAD;AAAA,MACA,YAAAvT;AAAA,MACA,aAAA8T;AAAA,MACA,cAAAJ;AAAA,MACA,SAAAC;AAAA,MACA,eAAAI;AAAA,MACA,aAAAC;AAAA,MAEC,UAAA7U;AAAA,IAAA;AAAA,EACH,IAKFI,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,WAAWS;AAAA,MACV,GAAG8T;AAAA,MACH,GAAGJ;AAAA,MAEH,UAAA;AAAA,QACCC,KAAArU,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,WAAWyU;AAAA,YACX,OAAOC;AAAA,UAAA;AAAA,QACT;AAAA,QAED7U;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAEJ;AAEA,SAAS8U,GACP5b,GAUA;AACA,QAAM6b,IAAmB3M,GAAGC,GAAO,eAAe,CAAC,GAC7C2M,IAAuB5M,GAAGC,GAAO,aAAa,CAAC,GAC/C4M,IAAuB7M,GAAGC,GAAO,aAAa,CAAC,GAC/C6M,IAAe9M,GAAGC,GAAO,eAAe,CAAC;AAC/C,SACGjI,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAWiI,GAAO,yBAAyB,GAC9C,UAAA;AAAA,IAAAjI,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAW2U,GAAkB,eAAY,iBAC5C,UAAA;AAAA,MAAA3U,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAW4U,GAAsB,eAAY,sBAChD,UAAA;AAAA,QAAA7U,gBAAAA,EAAA;AAAA,UAACyR;AAAA,UAAA;AAAA,YACC,WAAWqD;AAAA,YACX,MAAM;AAAA,YACN,MAAK;AAAA,YACL,OAAO5M,GAAO;AAAA,YACd,eAAY;AAAA,UAAA;AAAA,QACd;AAAA,QACAlI,gBAAAA,EAAA;AAAA,UAACmI;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAOD,GAAO;AAAA,YACd,eAAY;AAAA,YAEX,UAAMnP,EAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACT,GACF;AAAA,MACC,EAAQA,EAAM,gBAEXkH,gBAAAA,EAAAA,KAAA6K,EAAAA,UAAA,EAAA,UAAA;AAAA,QAAA9K,gBAAAA,EAAA,IAACsT,IAAO,EAAA;AAAA,QACRtT,gBAAAA,EAAA;AAAA,UAAC2H;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,MAAK;AAAA,YACL,eAAY;AAAA,YACZ,WAAWoN;AAAA,YAEV,UAAMhc,EAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACT,EACF,CAAA;AAAA,IAAA,GAEJ;AAAA,IACAkH,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,WAAWlH,EAAM;AAAA,QAChB,GAAGA,EAAM;AAAA,QACT,GAAGA,EAAM;AAAA,QAET,UAAA;AAAA,UAAAA,EAAM,WACLiH,gBAAAA,EAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAY;AAAA,cACZ,WAAWjH,EAAM;AAAA,cACjB,OAAOA,EAAM;AAAA,YAAA;AAAA,UACf;AAAA,UAEDA,EAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACT,GACF;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1KA,SAASka,GAAgBrL,GAAkBoN,GAA6B;AACtE,SAAO/M,GAAG;AAAA,IACR,CAACC,GAAO,qBAAqB,CAAC,GAAGN,MAAS;AAAA,IAC1C,CAACM,GAAO,eAAe,CAAC,GAAGN,MAAS;AAAA,IACpC,CAACM,GAAO,eAAe,CAAC,GAAGN,MAAS;AAAA,IACpC,CAACM,GAAO,oBAAoB,CAAC,GAAG8M;AAAA,EAAA,CACjC;AACH;AAEA,SAASC,GACPlD,GACAmD,GAC+B;AAC/B,SAAIA,MAIGnD,MAAY,qBAAqB,WAAW;AACrD;AAEO,SAASoD,GAAmBpD,GAAgC;AACjE,UAAQA,GAAS;AAAA,IACf,KAAK;AACH,aAAO7J,GAAO,qBAAqB;AAAA,IACrC,KAAK;AACH,aAAOA,GAAO,0BAA0B;AAAA,IAC1C,KAAK;AACH,aAAOA,GAAO,qBAAqB;AAAA,IACrC,KAAK;AACH,aAAOA,GAAO,gBAAgB;AAAA,IAChC,KAAK;AACI,aAAAD;AAAA,QACLC,GAAO,iBAAiB;AAAA,QACxBA,GAAO,2BAA2B;AAAA,QAClC7H,GAAiB;AAAA,MACnB;AAAA,IACF,KAAK;AACH,aAAO4H,GAAGC,GAAO,iBAAiB,GAAG7H,GAAiB,cAAc;AAAA,IACtE,KAAK;AACI,aAAA4H;AAAA,QACLC,GAAO,2BAA2B;AAAA,QAClC7H,GAAiB;AAAA,MACnB;AAAA,IACF,KAAK;AACI,aAAA4H,GAAGC,GAAO,gBAAgB,CAAC;AAAA,IACpC,KAAK;AACI,aAAAD,GAAGC,GAAO,6BAA6B,CAAC;AAAA,IACjD,KAAK;AACI,aAAAD,GAAGC,GAAO,cAAc,CAAC;AAAA,IAClC,KAAK;AACI,aAAAD,GAAGC,GAAO,cAAc,CAAC;AAAA,IAClC,KAAK;AACH,aAAOD,GAAGC,GAAO,mBAAmB,GAAG7H,GAAiB,gBAAgB;AAAA,IAC1E,KAAK;AAAA,IACL;AACE,aAAO6H,GAAO,eAAe;AAAA,EAAA;AAEnC;AAUO,SAASkN,GAAO;AAAA,EACrB,UAAAvV;AAAA,EACA,UAAAwV;AAAA,EACA,WAAAL;AAAA,EACA,WAAAvU;AAAA,EACA,MAAA+Q;AAAA,EACA,WAAAc;AAAA,EACA,eAAAgD,IAAgB;AAAA,EAChB,aAAAJ;AAAA,EACA,UAAAK;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,SAAA9E;AAAA,EACA,MAAA9I,IAAO;AAAA,EACP,SAAAmK,IAAU;AAAA,EACV,MAAA0D;AAAA,EACA,IAAAC;AAAA,EACA,QAAAxM;AAAA,EACA,eAAe2I;AAAA,EACf,QAAA8D;AAAA,EACA,MAAA5N,IAAO;AAAA,EACP,GAAGa;AACL,GAGyB;AACvB,QAAMgN,IAAkB3N;AAAA,IACtBC,GAAO;AAAA,IACP+K,GAAgBrL,GAAMoN,CAAS;AAAA,IAC/BG,GAAmBpD,CAAO;AAAA,IAC1B,EAAE,CAAC7J,GAAO,iBAAiB,CAAC,GAAGwI,EAAQ;AAAA,IACvCjQ;AAAA,IACA,EAAE,CAACyH,GAAO,cAAc,CAAC,GAAGH,EAAK;AAAA,EACnC,GAEM8N,IAAoBZ,GAAelD,GAASmD,CAAW,GACvDY,IAAUC,GAAWP,GAAaG,CAAM,GACxCK,IAAMC,GAAO,EAAE,MAAAR,GAAM,IAAAC,GAAI,QAAAC,GAAQ,GAEjCO,IAAUF,KAAO,CAACX,GAClBc,IAAUD,IAAUJ,IAAU,UAC9B/c,IAAqB,EAAE,GAAG6P,EAAa;AAE7C,MAAIsN,GAAS;AACX,UAAME,IAAWN,MAAY;AACvB,IAAA/c,EAAAqd,IAAW,SAAS,IAAI,IAAIJ,GAC9B9M,MACFnQ,EAAM,SAASmQ;AAAA,EACjB;AAGF,QAAMmN,IAAoBpO,GAAGC,GAAO,sBAAsB,GAAG;AAAA,IAC3D,CAAC7H,GAAiB,oCAAoC,GACpD0R,MAAY;AAAA,IACd,CAAC7J,GAAO,4BAA4B,CAAC,GAAGoN,MAAkB;AAAA,IAC1D,CAACpN,GAAO,6BAA6B,CAAC,GAAGoN,MAAkB;AAAA,EAAA,CAC5D;AAGC,SAAArV,gBAAAA,EAAA;AAAA,IAACkW;AAAA,IAAA;AAAA,MACE,GAAGpd;AAAA,MACJ,WAAW6c;AAAA,MACX,UAAUP,KAAY3E;AAAA,MACtB,eAAamB;AAAA,MACb,KAAK0D;AAAA,MACL,MAAMY,MAAY,WAAWpd,EAAM,OAAO;AAAA,MAEzC,UAAA;AAAA,QAAAuc,MAAkB,WAAWzV;AAAA,QAC7B2R,KACCxR,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWqW;AAAA,YACX,eAAa,GAAGjP,GAASyK,GAAY,QAAQ,CAAC;AAAA,YAE9C,UAAA7R,gBAAAA,EAAA;AAAA,cAACyR;AAAA,cAAA;AAAA,gBACC,eAAa,GAAGrK,GAASyK,GAAY,QAAQ,CAAC,SAASL,CAAI;AAAA,gBAC3D,MAAAA;AAAA,gBACA,OAAOpK,GAASkL,GAAW,cAAc;AAAA,gBACzC,SAASuD;AAAA,cAAA;AAAA,YAAA;AAAA,UACX;AAAA,QACF;AAAA,QAEDP,MAAkB,UAAUzV;AAAA,QAC5B6Q,KACC1Q,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWkI,GAAO,wBAAwB;AAAA,YAC1C,eAAa,GAAGd,GAASyK,GAAY,QAAQ,CAAC;AAAA,YAE9C,UAAA7R,gBAAAA,EAAAA,IAAC6S,IAAO,EAAA,MAAK,QAAQ,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACvB;AAAA,IAAA;AAAA,EAEJ;AAEJ;AAQO,SAASoD,GAAO,EAAE,MAAAR,GAAM,IAAAC,GAAI,QAAAC,KAAwC;AACzE,MAAIF;AACK,WAAAA;AAET,MAAIC;AACK,WAAAA;AAET,MAAIC,KAAA,QAAAA,EAAQ;AACV,WAAOA,EAAO;AAGlB;AAEgB,SAAAI,GACdP,GACAG,GACmC;AACnC,SAAIA,KAAA,QAAAA,EAAQ,cACHA,EAAO,cAETH;AACT;;;;;;;;;AClNO,SAASc,GAAW;AAAA,EACzB,UAAAzW;AAAA,EACA,WAAAY;AAAA,EACA,aAAAyU,IAAc;AAAA,EACd,MAAA1D;AAAA,EACA,UAAA+E,IAAW;AAAA,EACX,QAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ;AAAA,EACR,mBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,GAAGrC;AACL,GAAoB;AAClB,QAAMjN,IAAUU,GAAGxH,GAAWyH,GAAO,aAAa,GAAG;AAAA,IACnD,CAACA,GAAO,qBAAqB,CAAC,GAAGsO;AAAA,IACjC,CAACtO,GAAO,QAAW,GAAGyO,MAAsB;AAAA,IAC5C,CAACzO,GAAO,qBAAqB,CAAC,GAAG2O,MAAkB;AAAA,EAAA,CACpD,GAEKC,IAAkB7O,GAAGC,GAAO,QAAW;AAE7C,EAAAsM,EAAY,OAAO,QACnBA,EAAY,YAAY,IAExBA,EAAY,UAAU;AACtB,QAAMuC,IACJH,MAAa,UAAaA,IAAW,IAAI,KAAKA,CAAQ,MAAM;AAE5D,SAAA3W,gBAAAA,EAAA;AAAA,IAACmV;AAAA,IAAA;AAAA,MACE,GAAGZ;AAAA,MACJ,WAAWjN;AAAA,MACX,cAAY,GAAGkP,CAAS,GAAGM,CAAa;AAAA,MACxC,OAAAL;AAAA,MAEA,UAAA;AAAA,QAAAzW,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWiI,GAAO,oBAAoB;AAAA,YACtC,eAAY;AAAA,YAEZ,UAAA;AAAA,cAAAlI,gBAAAA,EAAA;AAAA,gBAACyR;AAAA,gBAAA;AAAA,kBACC,SAASyD;AAAA,kBACT,MAAA1D;AAAA,kBACA,MAAM+E;AAAA,kBACN,OAAM;AAAA,gBAAA;AAAA,cACR;AAAA,cACC,CAAC,CAACK,KAAYA,IAAW,KACvB5W,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAW8W,GAAiB,eAAY,iBAC1C,UACHF,EAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAEJ;AAAA,QACC/W;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAEJ;ACjHO,MAAMmX,KAAc5F,EAAe;AAAA,EACxC,QAAQ,MAAM,OAAO,uBAAU;AAAA,EAC/B,WAAW,CAACpQ,MAAWA,EAAO;AAChC,CAAC;;GCGKiW,KAAmB,CAAC,KAAK,UAAU,SAAS,UAAU,UAAU;AActE,IAAIC,KAAM;AASH,SAASC,GAAmB;AAAA,EACjC,SAAAC,IAAU;AAAA,EACV,UAAAvX,IAAW,CAAC;AAAA,EACZ,WAAAY,IAAY;AACd,GAA4B;AACpB,QAAA4W,IAAKtiB,GAAM,QAAQ,MAAM,eAAemiB,IAAK,IAAI,EAAE;AAEzD,SAAAniB,GAAM,UAAU,MAAM;AACpB,aAAS,iBAAiB,IAAIsiB,CAAE,IAAI,EAAE,QAAQ,CAACnc,MAAY;AACzD,MACE,EAAEA,aAAmB,gBACrB,CAACoc,GAAwBpc,CAAO,MAI9Bkc,IACFlc,EAAQ,WAAW;AAAA,QACjBkM,GAASlM,EAAQ,QAAQ,kBAAkB,GAAG;AAAA,QAC9C;AAAA,MACF,KAEAA,EAAQ,QAAQ,cAAc;AAAA,QAC5BA,EAAQ,QAAQ,eAAeA,EAAQ,YAAY;AAAA,MACrD,GACAA,EAAQ,WAAW;AAAA,IACrB,CACD;AAAA,EAAA,GACA,CAACkc,GAASC,CAAE,CAAC,GAGdrX,gBAAAA,MAAC,SAAI,IAAAqX,GAAQ,WAAWpP,GAAGC,GAAO,oBAAoBzH,CAAS,GAC5D,UAAAZ,EACH,CAAA;AAEJ;AAEA,SAASyX,GAAwBpc,GAA+B;AAC9D,SAAI,EAAA+b,GAAiB,SAAS/b,EAAQ,SAAS,YAAa,CAAA;AAI9D;ACYO,SAASqc,GAAQ;AAAA,EACtB,kBAAAC,IAAmB;AAAA,EACnB,wBAAAC,IAAyB;AAAA,EACzB,QAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,kBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAApX,IAAY;AAAA,EACZ,UAAAqX,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC,IAAiB;AACnB,GAAuD;AAEnD,SAAAnY,gBAAAA,EAAA;AAAA,IAACoY;AAAAA,IAAA;AAAA,MACC,UAAAN;AAAA,MACA,kBAAAN;AAAA,MACA,wBAAAC;AAAA,MACA,QAAAE;AAAA,MACA,WAAAE;AAAA,MACA,cAAAE;AAAA,MACA,SAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,gBAAAE;AAAA,MACA,cACEnY,gBAAAA,EAAA,IAACmX,IAAmB,EAAA,SAASQ,GAC3B,UAAA3X,gBAAAA,EAAA;AAAA,QAACwT;AAAA,QAAA;AAAA,UACC,eAAa,WAAWmE,IAAS,SAAS,QAAQ;AAAA,UAClD,WAAAlX;AAAA,UAEC,UAAAmX;AAAA,QAAA;AAAA,MAAA,GAEL;AAAA,MAED,GAAGM;AAAA,MAEH,UAAAR;AAAA,IAAA;AAAA,EACH;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3H+BtG,EAAe;AAAA,EAC5C,QAAQ,MAAM,OAAO,2BAAc;AAAA,EACnC,WAAW,CAACpQ,MAAWA,EAAO;AAChC,CAAC;ACOcoQ,EAAe;AAAA,EAC1B,QAAQ,MAAM,OAAO,4BAA6B;AAAA,EAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACcoQ,EAAe;AAAA,EAC5B,QAAQ,MAAM,OAAO,6BAA8B;AAAA,EACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACMoQ,EAAe;AAAA,EACpB,QAAQ,MAAM,OAAO,sBAAuB;AAAA,EAC5C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACaoQ,EAAe;AAAA,EAC3B,QAAQ,MAAM,OAAO,6BAA8B;AAAA,EACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACoBoQ,EAAe;AAAA,EAClC,QAAQ,MAAM,OAAO,iCAAkC;AAAA,EACvD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACcoQ,EAAe;AAAA,EAC5B,QAAQ,MAAM,OAAO,6BAA8B;AAAA,EACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACaoQ,EAAe;AAAA,EAC3B,QAAQ,MAAM,OAAO,4BAA6B;AAAA,EAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACmBoQ,EAAe;AAAA,EACjC,QAAQ,MAAM,OAAO,kCAAmC;AAAA,EACxD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACUoQ,EAAe;AAAA,EACxB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACSoQ,EAAe;AAAA,EACvB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACYoQ,EAAe;AAAA,EAC1B,QAAQ,MAAM,OAAO,4BAA6B;AAAA,EAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACgBoQ,EAAe;AAAA,EAC9B,QAAQ,MAAM,OAAO,+BAAgC;AAAA,EACrD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACiBoQ,EAAe;AAAA,EAC/B,QAAQ,MAAM,OAAO,gCAAiC;AAAA,EACtD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACYoQ,EAAe;AAAA,EAC1B,QAAQ,MAAM,OAAO,2BAA4B;AAAA,EACjD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACSoQ,EAAe;AAAA,EACvB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACUoQ,EAAe;AAAA,EACxB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACMoQ,EAAe;AAAA,EACpB,QAAQ,MAAM,OAAO,sBAAuB;AAAA,EAC5C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACOoQ,EAAe;AAAA,EACrB,QAAQ,MAAM,OAAO,uBAAwB;AAAA,EAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACUoQ,EAAe;AAAA,EACxB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACKoQ,EAAe;AAAA,EACnB,QAAQ,MAAM,OAAO,qBAAsB;AAAA,EAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACgBoQ,EAAe;AAAA,EAC9B,QAAQ,MAAM,OAAO,8BAA+B;AAAA,EACpD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACWoQ,EAAe;AAAA,EACzB,QAAQ,MAAM,OAAO,2BAA4B;AAAA,EACjD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACSoQ,EAAe;AAAA,EACvB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACaoQ,EAAe;AAAA,EAC3B,QAAQ,MAAM,OAAO,6BAA8B;AAAA,EACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACmBoQ,EAAe;AAAA,EACjC,QAAQ,MAAM,OAAO,iCAAkC;AAAA,EACvD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACOoQ,EAAe;AAAA,EACrB,QAAQ,MAAM,OAAO,uBAAwB;AAAA,EAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACWoQ,EAAe;AAAA,EACzB,QAAQ,MAAM,OAAO,2BAA4B;AAAA,EACjD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACSoQ,EAAe;AAAA,EACvB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACOoQ,EAAe;AAAA,EACrB,QAAQ,MAAM,OAAO,uBAAwB;AAAA,EAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACuBoQ,EAAe;AAAA,EACrC,QAAQ,MAAM,OAAO,qCAAsC;AAAA,EAC3D,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACKoQ,EAAe;AAAA,EACnB,QAAQ,MAAM,OAAO,qBAAsB;AAAA,EAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACaoQ,EAAe;AAAA,EAC3B,QAAQ,MAAM,OAAO,2BAA4B;AAAA,EACjD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACuBoQ,EAAe;AAAA,EACrC,QAAQ,MAAM,OAAO,sCAAuC;AAAA,EAC5D,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACWoQ,EAAe;AAAA,EACzB,QAAQ,MAAM,OAAO,2BAA4B;AAAA,EACjD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACaoQ,EAAe;AAAA,EAC3B,QAAQ,MAAM,OAAO,6BAA8B;AAAA,EACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACaoQ,EAAe;AAAA,EAC3B,QAAQ,MAAM,OAAO,4BAA6B;AAAA,EAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACYoQ,EAAe;AAAA,EAC1B,QAAQ,MAAM,OAAO,4BAA6B;AAAA,EAClD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACUoQ,EAAe;AAAA,EACxB,QAAQ,MAAM,OAAO,0BAA2B;AAAA,EAChD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACQoQ,EAAe;AAAA,EACtB,QAAQ,MAAM,OAAO,wBAAyB;AAAA,EAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACgBoQ,EAAe;AAAA,EAC9B,QAAQ,MAAM,OAAO,+BAAgC;AAAA,EACrD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACSoQ,EAAe;AAAA,EACvB,QAAQ,MAAM,OAAO,yBAA0B;AAAA,EAC/C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACOoQ,EAAe;AAAA,EACrB,QAAQ,MAAM,OAAO,uBAAwB;AAAA,EAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACQoQ,EAAe;AAAA,EACtB,QAAQ,MAAM,OAAO,wBAAyB;AAAA,EAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACSoQ,EAAe;AAAA,EACvB,QAAQ,MAAM,OAAO,wBAAyB;AAAA,EAC9C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACcoQ,EAAe;AAAA,EAC5B,QAAQ,MAAM,OAAO,6BAA8B;AAAA,EACnD,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACKoQ,EAAe;AAAA,EACnB,QAAQ,MAAM,OAAO,qBAAsB;AAAA,EAC3C,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACQoQ,EAAe;AAAA,EACtB,QAAQ,MAAM,OAAO,uBAAwB;AAAA,EAC7C,WAAW,CAACpQ,MAAWA,EAAO;AAC/B,CAAA;ACpMKoQ,EAAe;AAAA,EACnB,QAAQ,MAAM,OAAO,qBAAQ;AAAA,EAC7B,WAAW,CAACpQ,MAAWA,EAAO;AAAA,CAC/B,GACUoQ,EAAe;AAAA,EACxB,QAAQ,MAAM,OAAO,0BAAa;AAAA,EAClC,WAAW,CAACpQ,MAAWA,EAAO;AAC/B,CAAA;;;;;;;;;;;ACFH,MAAI+L,IAAwB,OAAO,uBAC/BhS,IAAiB,OAAO,UAAU,gBAClCsd,IAAmB,OAAO,UAAU;AAExC,WAASC,EAASC,GAAK;AACtB,QAAIA,KAAQ;AACX,YAAM,IAAI,UAAU,uDAAuD;AAG5E,WAAO,OAAOA,CAAG;AAAA,EAClB;AAEA,WAASC,IAAkB;AAC1B,QAAI;AACH,UAAI,CAAC,OAAO;AACX,eAAO;AAMR,UAAIC,IAAQ,IAAI,OAAO,KAAK;AAE5B,UADAA,EAAM,CAAC,IAAI,MACP,OAAO,oBAAoBA,CAAK,EAAE,CAAC,MAAM;AAC5C,eAAO;AAKR,eADIC,IAAQ,CAAE,GACL7Z,IAAI,GAAGA,IAAI,IAAIA;AACvB,QAAA6Z,EAAM,MAAM,OAAO,aAAa7Z,CAAC,CAAC,IAAIA;AAEvC,UAAI8Z,IAAS,OAAO,oBAAoBD,CAAK,EAAE,IAAI,SAAUrkB,GAAG;AAC/D,eAAOqkB,EAAMrkB,CAAC;AAAA,MACjB,CAAG;AACD,UAAIskB,EAAO,KAAK,EAAE,MAAM;AACvB,eAAO;AAIR,UAAIC,IAAQ,CAAE;AAId,aAHA,uBAAuB,MAAM,EAAE,EAAE,QAAQ,SAAUC,GAAQ;AAC1D,QAAAD,EAAMC,CAAM,IAAIA;AAAA,MACnB,CAAG,GACG,OAAO,KAAK,OAAO,OAAO,CAAE,GAAED,CAAK,CAAC,EAAE,KAAK,EAAE,MAC/C;AAAA,IAKF,QAAa;AAEb,aAAO;AAAA,IACT;AAAA,EACA;AAEA,SAAAE,KAAiBN,EAAe,IAAK,OAAO,SAAS,SAAUtP,GAAQ7P,GAAQ;AAK9E,aAJI0f,GACArD,IAAK4C,EAASpP,CAAM,GACpB8P,GAEKze,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,MAAAwe,IAAO,OAAO,UAAUxe,CAAC,CAAC;AAE1B,eAAS8C,KAAO0b;AACf,QAAIhe,EAAe,KAAKge,GAAM1b,CAAG,MAChCqY,EAAGrY,CAAG,IAAI0b,EAAK1b,CAAG;AAIpB,UAAI0P,GAAuB;AAC1B,QAAAiM,IAAUjM,EAAsBgM,CAAI;AACpC,iBAASla,IAAI,GAAGA,IAAIma,EAAQ,QAAQna;AACnC,UAAIwZ,EAAiB,KAAKU,GAAMC,EAAQna,CAAC,CAAC,MACzC6W,EAAGsD,EAAQna,CAAC,CAAC,IAAIka,EAAKC,EAAQna,CAAC,CAAC;AAAA,MAGrC;AAAA,IACA;AAEC,WAAO6W;AAAA,EACP;;;;;;AChFD,MAAIuD,IAAuB;AAE3BC,SAAAA,KAAiBD;;;;wBCXjBxd,KAAiB,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;;;;;;ACSnE,MAAIjF,IAAe,WAAW;AAAA,EAAE;AAEhC,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAIyiB,IAA4DhlB,gBAAAA,GAAA,GAC5D+G,IAAqB,CAAE,GACvBS,IAA0B2E,gBAAAA,GAAA;AAE9B,IAAA5J,IAAe,SAAS2iB,GAAM;AAC5B,UAAIrL,IAAU,cAAcqL;AAC5B,MAAI,OAAO,UAAY,OACrB,QAAQ,MAAMrL,CAAO;AAEvB,UAAI;AAIF,cAAM,IAAI,MAAMA,CAAO;AAAA,MACxB,QAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACH;AAaA,WAAS1S,EAAeC,GAAWC,GAAQC,GAAUC,GAAe4d,GAAU;AAC5E,QAAI,QAAQ,IAAI,aAAa;AAC3B,eAAS1d,KAAgBL;AACvB,YAAII,EAAIJ,GAAWK,CAAY,GAAG;AAChC,cAAIvF;AAIJ,cAAI;AAGF,gBAAI,OAAOkF,EAAUK,CAAY,KAAM,YAAY;AACjD,kBAAIE,IAAM;AAAA,iBACPJ,KAAiB,iBAAiB,OAAOD,IAAW,YAAYG,IAAe,+FACC,OAAOL,EAAUK,CAAY,IAAI;AAAA,cAEnH;AACD,oBAAAE,EAAI,OAAO,uBACLA;AAAA,YAClB;AACU,YAAAzF,IAAQkF,EAAUK,CAAY,EAAEJ,GAAQI,GAAcF,GAAeD,GAAU,MAAM0d,CAAoB;AAAA,UAC1G,SAAQpd,GAAI;AACX,YAAA1F,IAAQ0F;AAAA,UAClB;AAWQ,cAVI1F,KAAS,EAAEA,aAAiB,UAC9BK;AAAA,aACGgF,KAAiB,iBAAiB,6BACnCD,IAAW,OAAOG,IAAe,6FAC6B,OAAOvF,IAAQ;AAAA,UAI9E,GAECA,aAAiB,SAAS,EAAEA,EAAM,WAAW6E,IAAqB;AAGpE,YAAAA,EAAmB7E,EAAM,OAAO,IAAI;AAEpC,gBAAIQ,IAAQyiB,IAAWA,EAAQ,IAAK;AAEpC,YAAA5iB;AAAA,cACE,YAAY+E,IAAW,YAAYpF,EAAM,WAAWQ,KAAwB;AAAA,YAC7E;AAAA,UACX;AAAA,QACA;AAAA;AAAA,EAGA;AAOA,SAAAyE,EAAe,oBAAoB,WAAW;AAC5C,IAAI,QAAQ,IAAI,aAAa,iBAC3BJ,IAAqB,CAAE;AAAA,EAE3B,GAEAqe,KAAiBje;;;;;;AC7FjB,MAAIke,IAAUrlB,GAAmB,GAC7BmE,IAASgI,GAAwB,GAEjC6Y,IAA4DjT,gBAAAA,GAAA,GAC5DvK,IAA0ByK,gBAAAA,GAAA,GAC1B9K,IAA4CgL,gBAAAA,GAAA,GAE5C5P,IAAe,WAAW;AAAA,EAAE;AAEhC,EAAI,QAAQ,IAAI,aAAa,iBAC3BA,IAAe,SAAS2iB,GAAM;AAC5B,QAAIrL,IAAU,cAAcqL;AAC5B,IAAI,OAAO,UAAY,OACrB,QAAQ,MAAMrL,CAAO;AAEvB,QAAI;AAIF,YAAM,IAAI,MAAMA,CAAO;AAAA,IACxB,QAAW;AAAA,IAAA;AAAA,EACb;AAGH,WAASyL,IAA+B;AACtC,WAAO;AAAA,EACT;AAEAC,SAAAA,KAAiB,SAASzb,GAAgB0b,GAAqB;AAE7D,QAAIC,IAAkB,OAAO,UAAW,cAAc,OAAO,UACzD5jB,IAAuB;AAgB3B,aAASC,EAAcC,GAAe;AACpC,UAAI+I,IAAa/I,MAAkB0jB,KAAmB1jB,EAAc0jB,CAAe,KAAK1jB,EAAcF,CAAoB;AAC1H,UAAI,OAAOiJ,KAAe;AACxB,eAAOA;AAAA,IAEb;AAiDE,QAAI4a,IAAY,iBAIZC,IAAiB;AAAA,MACnB,OAAOC,EAA2B,OAAO;AAAA,MACzC,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,MAAMA,EAA2B,SAAS;AAAA,MAC1C,MAAMA,EAA2B,UAAU;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAE3C,KAAKC,EAAsB;AAAA,MAC3B,SAASC;AAAA,MACT,SAASC,EAA0B;AAAA,MACnC,aAAaC,EAA8B;AAAA,MAC3C,YAAYC;AAAA,MACZ,MAAMC,EAAmB;AAAA,MACzB,UAAUC;AAAA,MACV,OAAOC;AAAA,MACP,WAAWC;AAAA,MACX,OAAOC;AAAA,MACP,OAAOC;AAAA,IACR;AAOD,aAASC,EAAGlhB,GAAG8H,GAAG;AAEhB,aAAI9H,MAAM8H,IAGD9H,MAAM,KAAK,IAAIA,MAAM,IAAI8H,IAGzB9H,MAAMA,KAAK8H,MAAMA;AAAA,IAE9B;AAUE,aAASqZ,EAAc5M,GAAS6M,GAAM;AACpC,WAAK,UAAU7M,GACf,KAAK,OAAO6M,KAAQ,OAAOA,KAAS,WAAWA,IAAM,CAAE,GACvD,KAAK,QAAQ;AAAA,IACjB;AAEE,IAAAD,EAAc,YAAY,MAAM;AAEhC,aAASE,EAA2BC,GAAU;AAC5C,UAAI,QAAQ,IAAI,aAAa;AAC3B,YAAIC,IAA0B,CAAE,GAC5BC,IAA6B;AAEnC,eAASC,EAAUC,GAAYliB,GAAO0E,GAAUjC,GAAeD,IAAU2f,GAAcC,IAAQ;AAI7F,YAHA3f,IAAgBA,KAAiBme,GACjCuB,IAAeA,KAAgBzd,GAE3B0d,OAAWlC;AACb,cAAIQ,GAAqB;AAEvB,gBAAI7d,IAAM,IAAI;AAAA,cACZ;AAAA,YAGD;AACD,kBAAAA,EAAI,OAAO,uBACLA;AAAA,UAChB,WAAmB,QAAQ,IAAI,aAAa,gBAAgB,OAAO,UAAY,KAAa;AAElF,gBAAI4T,KAAWhU,IAAgB,MAAMiC;AACrC,YACE,CAACqd,EAAwBtL,EAAQ;AAAA,YAEjCuL,IAA6B,MAE7BvkB;AAAA,cACE,6EACuB0kB,IAAe,gBAAgB1f,IAAgB;AAAA,YAIvE,GACDsf,EAAwBtL,EAAQ,IAAI,IACpCuL;AAAA,UAEZ;AAAA;AAEM,eAAIhiB,EAAM0E,CAAQ,KAAK,OACjBwd,IACEliB,EAAM0E,CAAQ,MAAM,OACf,IAAIid,EAAc,SAASnf,KAAW,OAAO2f,IAAe,8BAA8B,SAAS1f,IAAgB,8BAA8B,IAEnJ,IAAIkf,EAAc,SAASnf,KAAW,OAAO2f,IAAe,iCAAiC,MAAM1f,IAAgB,mCAAmC,IAExJ,OAEAqf,EAAS9hB,GAAO0E,GAAUjC,GAAeD,IAAU2f,CAAY;AAAA,MAE9E;AAEI,UAAIE,IAAmBJ,EAAU,KAAK,MAAM,EAAK;AACjD,aAAAI,EAAiB,aAAaJ,EAAU,KAAK,MAAM,EAAI,GAEhDI;AAAA,IACX;AAEE,aAASvB,EAA2BwB,GAAc;AAChD,eAASR,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAcC,GAAQ;AAChF,YAAIG,IAAYviB,EAAM0E,CAAQ,GAC1B8d,KAAWC,EAAYF,CAAS;AACpC,YAAIC,OAAaF,GAAc;AAI7B,cAAII,IAAcC,EAAeJ,CAAS;AAE1C,iBAAO,IAAIZ;AAAA,YACT,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMO,IAAc,oBAAoBjgB,IAAgB,mBAAmB,MAAM6f,IAAe;AAAA,YAC9J,EAAC,cAAcA,EAAY;AAAA,UAC5B;AAAA,QACT;AACM,eAAO;AAAA,MACb;AACI,aAAOT,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASf,IAAuB;AAC9B,aAAOc,EAA2BrB,CAA4B;AAAA,IAClE;AAEE,aAASQ,EAAyB4B,GAAa;AAC7C,eAASd,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAI,OAAOS,KAAgB;AACzB,iBAAO,IAAIjB,EAAc,eAAeQ,IAAe,qBAAqB1f,IAAgB,iDAAiD;AAE/I,YAAI8f,IAAYviB,EAAM0E,CAAQ;AAC9B,YAAI,CAAC,MAAM,QAAQ6d,CAAS,GAAG;AAC7B,cAAIC,IAAWC,EAAYF,CAAS;AACpC,iBAAO,IAAIZ,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,wBAAwB;AAAA,QAC5K;AACM,iBAASqD,KAAI,GAAGA,KAAIyc,EAAU,QAAQzc,MAAK;AACzC,cAAI1I,IAAQwlB,EAAYL,GAAWzc,IAAGrD,GAAeD,GAAU2f,IAAe,MAAMrc,KAAI,KAAKoa,CAAoB;AACjH,cAAI9iB,aAAiB;AACnB,mBAAOA;AAAA,QAEjB;AACM,eAAO;AAAA,MACb;AACI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASb,IAA2B;AAClC,eAASa,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ;AAC9B,YAAI,CAACM,EAAeud,CAAS,GAAG;AAC9B,cAAIC,IAAWC,EAAYF,CAAS;AACpC,iBAAO,IAAIZ,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,qCAAqC;AAAA,QACzL;AACM,eAAO;AAAA,MACb;AACI,aAAOof,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASZ,IAA+B;AACtC,eAASY,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ;AAC9B,YAAI,CAAC6b,EAAQ,mBAAmBgC,CAAS,GAAG;AAC1C,cAAIC,IAAWC,EAAYF,CAAS;AACpC,iBAAO,IAAIZ,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,0CAA0C;AAAA,QAC9L;AACM,eAAO;AAAA,MACb;AACI,aAAOof,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASX,EAA0B0B,GAAe;AAChD,eAASf,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAI,EAAEniB,EAAM0E,CAAQ,aAAame,IAAgB;AAC/C,cAAIC,IAAoBD,EAAc,QAAQjC,GAC1CmC,IAAkBC,EAAahjB,EAAM0E,CAAQ,CAAC;AAClD,iBAAO,IAAIid,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMY,IAAkB,oBAAoBtgB,IAAgB,mBAAmB,kBAAkBqgB,IAAoB,KAAK;AAAA,QACzN;AACM,eAAO;AAAA,MACb;AACI,aAAOjB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASR,EAAsB2B,GAAgB;AAC7C,UAAI,CAAC,MAAM,QAAQA,CAAc;AAC/B,eAAI,QAAQ,IAAI,aAAa,iBACvB,UAAU,SAAS,IACrBxlB;AAAA,UACE,iEAAiE,UAAU,SAAS;AAAA,QAErF,IAEDA,EAAa,wDAAwD,IAGlE+iB;AAGT,eAASsB,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AAExE,iBADII,IAAYviB,EAAM0E,CAAQ,GACrBoB,IAAI,GAAGA,IAAImd,EAAe,QAAQnd;AACzC,cAAI4b,EAAGa,GAAWU,EAAend,CAAC,CAAC;AACjC,mBAAO;AAIX,YAAIod,KAAe,KAAK,UAAUD,GAAgB,SAAkB3e,IAAKpB,GAAO;AAC9E,cAAI5E,KAAOqkB,EAAezf,CAAK;AAC/B,iBAAI5E,OAAS,WACJ,OAAO4E,CAAK,IAEdA;AAAA,QACf,CAAO;AACD,eAAO,IAAIye,EAAc,aAAanf,IAAW,OAAO2f,IAAe,iBAAiB,OAAOI,CAAS,IAAI,QAAQ,kBAAkB9f,IAAgB,wBAAwBygB,KAAe,IAAI;AAAA,MACvM;AACI,aAAOrB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAAST,EAA0BuB,GAAa;AAC9C,eAASd,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAI,OAAOS,KAAgB;AACzB,iBAAO,IAAIjB,EAAc,eAAeQ,IAAe,qBAAqB1f,IAAgB,kDAAkD;AAEhJ,YAAI8f,IAAYviB,EAAM0E,CAAQ,GAC1B8d,IAAWC,EAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIb,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,yBAAyB;AAEvK,iBAAS6B,MAAOie;AACd,cAAI7f,EAAI6f,GAAWje,EAAG,GAAG;AACvB,gBAAIlH,IAAQwlB,EAAYL,GAAWje,IAAK7B,GAAeD,GAAU2f,IAAe,MAAM7d,IAAK4b,CAAoB;AAC/G,gBAAI9iB,aAAiB;AACnB,qBAAOA;AAAA,UAEnB;AAEM,eAAO;AAAA,MACb;AACI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASP,EAAuB4B,GAAqB;AACnD,UAAI,CAAC,MAAM,QAAQA,CAAmB;AACpC,uBAAQ,IAAI,aAAa,gBAAe1lB,EAAa,wEAAwE,GACtH+iB;AAGT,eAAS1a,IAAI,GAAGA,IAAIqd,EAAoB,QAAQrd,KAAK;AACnD,YAAIsd,IAAUD,EAAoBrd,CAAC;AACnC,YAAI,OAAOsd,KAAY;AACrB,iBAAA3lB;AAAA,YACE,gGACc4lB,EAAyBD,CAAO,IAAI,eAAetd,IAAI;AAAA,UACtE,GACM0a;AAAA,MAEf;AAEI,eAASsB,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AAExE,iBADImB,KAAgB,CAAE,GACbxd,IAAI,GAAGA,IAAIqd,EAAoB,QAAQrd,KAAK;AACnD,cAAIsd,KAAUD,EAAoBrd,CAAC,GAC/Byd,IAAgBH,GAAQpjB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAcjC,CAAoB;AACxG,cAAIqD,KAAiB;AACnB,mBAAO;AAET,UAAIA,EAAc,QAAQ7gB,EAAI6gB,EAAc,MAAM,cAAc,KAC9DD,GAAc,KAAKC,EAAc,KAAK,YAAY;AAAA,QAE5D;AACM,YAAIC,KAAwBF,GAAc,SAAS,IAAK,6BAA6BA,GAAc,KAAK,IAAI,IAAI,MAAK;AACrH,eAAO,IAAI3B,EAAc,aAAanf,IAAW,OAAO2f,IAAe,oBAAoB,MAAM1f,IAAgB,MAAM+gB,KAAuB,IAAI;AAAA,MACxJ;AACI,aAAO3B,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASV,IAAoB;AAC3B,eAASU,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,eAAKsB,EAAOzjB,EAAM0E,CAAQ,CAAC,IAGpB,OAFE,IAAIid,EAAc,aAAanf,IAAW,OAAO2f,IAAe,oBAAoB,MAAM1f,IAAgB,2BAA2B;AAAA,MAGpJ;AACI,aAAOof,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAAS4B,EAAsBjhB,GAAeD,GAAU2f,GAAc7d,GAAKhG,GAAM;AAC/E,aAAO,IAAIqjB;AAAA,SACRlf,KAAiB,iBAAiB,OAAOD,IAAW,YAAY2f,IAAe,MAAM7d,IAAM,+FACXhG,IAAO;AAAA,MACzF;AAAA,IACL;AAEE,aAASkjB,EAAuBmC,GAAY;AAC1C,eAAS7B,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ,GAC1B8d,IAAWC,EAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIb,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgBK,IAAW,QAAQ,kBAAkB/f,IAAgB,wBAAwB;AAEtK,iBAAS6B,MAAOqf,GAAY;AAC1B,cAAIP,IAAUO,EAAWrf,EAAG;AAC5B,cAAI,OAAO8e,KAAY;AACrB,mBAAOM,EAAsBjhB,GAAeD,GAAU2f,GAAc7d,IAAKqe,EAAeS,CAAO,CAAC;AAElG,cAAIhmB,KAAQgmB,EAAQb,GAAWje,IAAK7B,GAAeD,GAAU2f,IAAe,MAAM7d,IAAK4b,CAAoB;AAC3G,cAAI9iB;AACF,mBAAOA;AAAA,QAEjB;AACM,eAAO;AAAA,MACb;AACI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASL,EAA6BkC,GAAY;AAChD,eAAS7B,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ,GAC1B8d,IAAWC,EAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIb,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgBK,IAAW,QAAQ,kBAAkB/f,IAAgB,wBAAwB;AAGtK,YAAImhB,KAAUvkB,EAAO,CAAA,GAAIW,EAAM0E,CAAQ,GAAGif,CAAU;AACpD,iBAASrf,KAAOsf,IAAS;AACvB,cAAIR,KAAUO,EAAWrf,CAAG;AAC5B,cAAI5B,EAAIihB,GAAYrf,CAAG,KAAK,OAAO8e,MAAY;AAC7C,mBAAOM,EAAsBjhB,GAAeD,GAAU2f,GAAc7d,GAAKqe,EAAeS,EAAO,CAAC;AAElG,cAAI,CAACA;AACH,mBAAO,IAAIzB;AAAA,cACT,aAAanf,IAAW,OAAO2f,IAAe,YAAY7d,IAAM,oBAAoB7B,IAAgB,qBACjF,KAAK,UAAUzC,EAAM0E,CAAQ,GAAG,MAAM,IAAI,IAC7D;AAAA,gBAAmB,KAAK,UAAU,OAAO,KAAKif,CAAU,GAAG,MAAM,IAAI;AAAA,YACtE;AAEH,cAAIvmB,IAAQgmB,GAAQb,GAAWje,GAAK7B,GAAeD,GAAU2f,IAAe,MAAM7d,GAAK4b,CAAoB;AAC3G,cAAI9iB;AACF,mBAAOA;AAAA,QAEjB;AACM,eAAO;AAAA,MACb;AAEI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAAS2B,EAAOlB,GAAW;AACzB,cAAQ,OAAOA,GAAS;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,CAACA;AAAA,QACV,KAAK;AACH,cAAI,MAAM,QAAQA,CAAS;AACzB,mBAAOA,EAAU,MAAMkB,CAAM;AAE/B,cAAIlB,MAAc,QAAQvd,EAAeud,CAAS;AAChD,mBAAO;AAGT,cAAIvc,IAAahJ,EAAculB,CAAS;AACxC,cAAIvc,GAAY;AACd,gBAAIC,IAAWD,EAAW,KAAKuc,CAAS,GACpCrc;AACJ,gBAAIF,MAAeuc,EAAU;AAC3B,qBAAO,EAAErc,IAAOD,EAAS,KAAI,GAAI;AAC/B,oBAAI,CAACwd,EAAOvd,EAAK,KAAK;AACpB,yBAAO;AAAA;AAKX,qBAAO,EAAEA,IAAOD,EAAS,KAAI,GAAI,QAAM;AACrC,oBAAI4d,IAAQ3d,EAAK;AACjB,oBAAI2d,KACE,CAACJ,EAAOI,EAAM,CAAC,CAAC;AAClB,yBAAO;AAAA,cAGzB;AAAA,UAEA;AACU,mBAAO;AAGT,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACf;AAAA,IACA;AAEE,aAASC,EAAStB,GAAUD,GAAW;AAErC,aAAIC,MAAa,WACR,KAIJD,IAKDA,EAAU,eAAe,MAAM,YAK/B,OAAO,UAAW,cAAcA,aAAqB,SAThD;AAAA,IAcb;AAGE,aAASE,EAAYF,GAAW;AAC9B,UAAIC,IAAW,OAAOD;AACtB,aAAI,MAAM,QAAQA,CAAS,IAClB,UAELA,aAAqB,SAIhB,WAELuB,EAAStB,GAAUD,CAAS,IACvB,WAEFC;AAAA,IACX;AAIE,aAASG,EAAeJ,GAAW;AACjC,UAAI,OAAOA,IAAc,OAAeA,MAAc;AACpD,eAAO,KAAKA;AAEd,UAAIC,IAAWC,EAAYF,CAAS;AACpC,UAAIC,MAAa,UAAU;AACzB,YAAID,aAAqB;AACvB,iBAAO;AACF,YAAIA,aAAqB;AAC9B,iBAAO;AAAA,MAEf;AACI,aAAOC;AAAA,IACX;AAIE,aAASa,EAAyBngB,GAAO;AACvC,UAAI5E,IAAOqkB,EAAezf,CAAK;AAC/B,cAAQ5E,GAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,QAAQA;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,OAAOA;AAAA,QAChB;AACE,iBAAOA;AAAA,MACf;AAAA,IACA;AAGE,aAAS0kB,EAAaT,GAAW;AAC/B,aAAI,CAACA,EAAU,eAAe,CAACA,EAAU,YAAY,OAC5C3B,IAEF2B,EAAU,YAAY;AAAA,IACjC;AAEE,WAAA1B,EAAe,iBAAiBxe,GAChCwe,EAAe,oBAAoBxe,EAAe,mBAClDwe,EAAe,YAAYA,GAEpBA;AAAA,EACR;;;;;;ACxlBD,MAAIX,IAA4DhlB,gBAAAA,GAAA;AAEhE,WAAS6oB,IAAgB;AAAA,EAAA;AACzB,WAASC,IAAyB;AAAA,EAAA;AAClC,SAAAA,EAAuB,oBAAoBD,GAE3CE,KAAiB,WAAW;AAC1B,aAASC,EAAKlkB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAcC,GAAQ;AAC5E,UAAIA,MAAWlC,GAIf;AAAA,YAAIrd,IAAM,IAAI;AAAA,UACZ;AAAA,QAGD;AACD,cAAAA,EAAI,OAAO,uBACLA;AAAA;AAAA;AAER,IAAAqhB,EAAK,aAAaA;AAClB,aAASC,IAAU;AACjB,aAAOD;AAAA,IAEX;AAEE,QAAIrD,IAAiB;AAAA,MACnB,OAAOqD;AAAA,MACP,QAAQA;AAAA,MACR,MAAMA;AAAA,MACN,MAAMA;AAAA,MACN,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MAER,KAAKA;AAAA,MACL,SAASC;AAAA,MACT,SAASD;AAAA,MACT,aAAaA;AAAA,MACb,YAAYC;AAAA,MACZ,MAAMD;AAAA,MACN,UAAUC;AAAA,MACV,OAAOA;AAAA,MACP,WAAWA;AAAA,MACX,OAAOA;AAAA,MACP,OAAOA;AAAA,MAEP,gBAAgBH;AAAA,MAChB,mBAAmBD;AAAA,IACpB;AAED,WAAAlD,EAAe,YAAYA,GAEpBA;AAAA,EACR;;;;;ACzDD,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAIN,IAAUrlB,GAAmB,GAI7BwlB,IAAsB;AAC1B0D,IAAAA,GAAA,UAAqD/c,gBAAAA,GAAA,EAACkZ,EAAQ,WAAWG,CAAmB;AAAA,EAC9F;AAGE0D,IAAAA,GAAA,UAAiBnX,gBAAAA,KAAuC;;;;;;ACf1D,WAAO,eAAwBoX,GAAA,cAAc;AAAA,MAC3C,OAAO;AAAA,IACT,CAAC,GACDA,EAAA,UAAkBC;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,QAAIC,IAAe;AAEnB,aAASC,EAAcriB,GAAS;AAC9B,UAAIsiB,IAAWtiB,EAAQ,eAAe,KAAKA,EAAQ,gBAAgB;AAGnE,UAAIsiB,KAAY,CAACtiB,EAAQ,UAAW,QAAO;AAG3C,UAAIuiB,IAAQ,OAAO,iBAAiBviB,CAAO;AAC3C,aAAOsiB,IAAWC,EAAM,iBAAiB,UAAU,MAAM;AAAA,MAEzDviB,EAAQ,eAAe,KAAKA,EAAQ,gBAAgB,IAAIuiB,EAAM,iBAAiB,SAAS,KAAK;AAAA,IAC/F;AAEA,aAASrG,EAAQlc,GAAS;AAExB,eADIwiB,IAAgBxiB,GACbwiB,KACDA,MAAkB,SAAS,QADX;AAEpB,YAAIH,EAAcG,CAAa,EAAG,QAAO;AACzC,QAAAA,IAAgBA,EAAc;AAAA,MAClC;AACE,aAAO;AAAA,IACT;AAEA,aAASC,EAAUziB,GAAS0iB,GAAkB;AAC5C,UAAIC,IAAW3iB,EAAQ,SAAS,YAAa,GACzC4iB,IAAMR,EAAa,KAAKO,CAAQ,KAAK,CAAC3iB,EAAQ,YAAa2iB,MAAa,OAAM3iB,EAAQ,QAAQ0iB;AAClG,aAAOE,KAAO1G,EAAQlc,CAAO;AAAA,IAC/B;AAEA,aAAS6iB,EAAS7iB,GAAS;AACzB,UAAI8iB,IAAW9iB,EAAQ,aAAa,UAAU;AAC9C,MAAI8iB,MAAa,SAAMA,IAAW;AAClC,UAAIC,IAAgB,MAAMD,CAAQ;AAClC,cAAQC,KAAiBD,KAAY,MAAML,EAAUziB,GAAS,CAAC+iB,CAAa;AAAA,IAC9E;AAEA,aAASZ,EAAwBniB,GAAS;AACxC,aAAO,GAAG,MAAM,KAAKA,EAAQ,iBAAiB,GAAG,GAAG,CAAC,EAAE,OAAO6iB,CAAQ;AAAA,IACxE;AACA,IAAA/c,EAAiB,UAAAoc,EAAQ;AAAA;;;;;UCzDzB,OAAO,eAAec,IAAS,cAAc;AAAA,IAC3C,OAAO;AAAA,EACT,CAAC,GACDA,GAAA,aAAqBC,GACrBD,GAAA,cAAsBE,GACtBF,GAAA,oBAA4BG,GAC5BH,GAAA,cAAsBI,GACtBJ,GAAA,kBAA0BK,GAC1BL,GAAA,mBAA2BM,GAC3BN,GAAA,sBAA8BO;AAE9B,MAAIC,IAAYzqB,GAA8B,GAE1C0qB,IAAaC,EAAuBF,CAAS;AAEjD,WAASE,EAAuBC,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;EAAM;AAE7F,MAAIC,IAAqB,CAAE,GACvBC,IAAe,MACfC,IAAc;AAElB,WAASb,IAAa;AACpB,IAAAa,IAAc;AAAA,EAChB;AAEA,WAASZ,IAAc;AACrB,QAAIY,GAAa;AAEf,UADAA,IAAc,IACV,CAACD;AACH;AAOF,iBAAW,WAAY;AACrB,YAAI,CAAAA,EAAa,SAAS,SAAS,aAAa,GAGhD;AAAA,cAAIE,QAASN,EAAW,SAASI,CAAY,EAAE,CAAC,KAAKA;AACrD,UAAAE,EAAG,MAAO;AAAA;AAAA,MACX,GAAE,CAAC;AAAA,IACR;AAAA,EACA;AAEA,WAASZ,IAAoB;AAC3B,IAAAS,EAAmB,KAAK,SAAS,aAAa;AAAA,EAChD;AAGA,WAASR,IAAc;AACrB,QAAIY,IAAU;AACd,QAAI;AACF,MAAIJ,EAAmB,WAAW,MAChCI,IAAUJ,EAAmB,IAAK,GAClCI,EAAQ,MAAO;AAEjB;AAAA,IACD,QAAW;AACV,cAAQ,KAAK,CAAC,gCAAgCA,GAAS,kCAAkC,EAAE,KAAK,GAAG,CAAC;AAAA,IACxG;AAAA,EACA;AAGA,WAASX,IAAkB;AACzB,IAAAO,EAAmB,SAAS,KAAKA,EAAmB,IAAK;AAAA,EAC3D;AAEA,WAASN,EAAiBtjB,GAAS;AACjC,IAAA6jB,IAAe7jB,GAEX,OAAO,oBACT,OAAO,iBAAiB,QAAQijB,GAAY,EAAK,GACjD,SAAS,iBAAiB,SAASC,GAAa,EAAI,MAEpD,OAAO,YAAY,UAAUD,CAAU,GACvC,SAAS,YAAY,WAAWC,CAAW;AAAA,EAE/C;AAEA,WAASK,IAAsB;AAC7B,IAAAM,IAAe,MAEX,OAAO,oBACT,OAAO,oBAAoB,QAAQZ,CAAU,GAC7C,SAAS,oBAAoB,SAASC,CAAW,MAEjD,OAAO,YAAY,UAAUD,CAAU,GACvC,SAAS,YAAY,WAAWC,CAAW;AAAA,EAE/C;;;;;;AC3FA,WAAO,eAAwBhB,GAAA,cAAc;AAAA,MAC3C,OAAO;AAAA,IACT,CAAC,GACDA,EAAA,UAAkB+B;AAElB,QAAIT,IAAYzqB,GAAqB,GAEjC0qB,IAAaC,EAAuBF,CAAS;AAEjD,aAASE,EAAuBC,GAAK;AAAE,aAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;IAAM;AAE7F,aAASM,EAASvgB,GAAMwgB,GAAO;AAC7B,UAAIrB,QAAeY,EAAW,SAAS/f,CAAI;AAE3C,UAAI,CAACmf,EAAS,QAAQ;AAEpB,QAAAqB,EAAM,eAAgB;AACtB;AAAA,MACJ;AAEE,UAAIlW,IAAS,QAETmW,IAAWD,EAAM,UACjBE,IAAOvB,EAAS,CAAC,GACjBwB,IAAOxB,EAASA,EAAS,SAAS,CAAC;AAIvC,UAAInf,MAAS,SAAS,eAAe;AACnC,YAAI,CAACygB,EAAU;AACf,QAAAnW,IAASqW;AAAA,MACb;AAUE,UARIA,MAAS,SAAS,iBAAiB,CAACF,MACtCnW,IAASoW,IAGPA,MAAS,SAAS,iBAAiBD,MACrCnW,IAASqW,IAGPrW,GAAQ;AACV,QAAAkW,EAAM,eAAgB,GACtBlW,EAAO,MAAO;AACd;AAAA,MACJ;AAaE,UAAIsW,IAAc,4BAA4B,KAAK,UAAU,SAAS,GAClEC,IAAkBD,KAAe,QAAQA,EAAY,CAAC,KAAK,YAAY,qBAAqB,KAAK,UAAU,SAAS,KAAK;AAI7H,UAAKC,GAEL;AAAA,YAAIlmB,IAAIwkB,EAAS,QAAQ,SAAS,aAAa;AAU/C,YARIxkB,IAAI,OACNA,KAAK8lB,IAAW,KAAK,IAGvBnW,IAAS6U,EAASxkB,CAAC,GAIf,OAAO2P,IAAW,KAAa;AACjC,UAAAkW,EAAM,eAAgB,GACtBlW,IAASmW,IAAWE,IAAOD,GAC3BpW,EAAO,MAAO;AACd;AAAA,QACJ;AAEE,QAAAkW,EAAM,eAAgB,GAEtBlW,EAAO,MAAO;AAAA;AAAA,IAChB;AACA,IAAAlI,EAAiB,UAAAoc,EAAQ;AAAA;;;;;;ACxEzB,MAAIsC,IAAU,QAAQ,IAAI,aAAa,cAEnCC,IAAU,WAAW;AAAA,EAAE;AAE3B,MAAID,GAAS;AACX,QAAIlpB,IAAe,SAAsBJ,GAAQE,GAAM;AACrD,UAAIspB,IAAM,UAAU;AACpB,MAAAtpB,IAAO,IAAI,MAAMspB,IAAM,IAAIA,IAAM,IAAI,CAAC;AACtC,eAASviB,IAAM,GAAGA,IAAMuiB,GAAKviB;AAC3B,QAAA/G,EAAK+G,IAAM,CAAC,IAAI,UAAUA,CAAG;AAE/B,UAAIwiB,IAAW,GACX/R,IAAU,cACZ1X,EAAO,QAAQ,OAAO,WAAW;AAC/B,eAAOE,EAAKupB,GAAU;AAAA,MAC9B,CAAO;AACH,MAAI,OAAO,UAAY,OACrB,QAAQ,MAAM/R,CAAO;AAEvB,UAAI;AAIF,cAAM,IAAI,MAAMA,CAAO;AAAA,MACxB,QAAW;AAAA,MAAA;AAAA,IAChB;AAEE,IAAA6R,IAAU,SAAS9R,GAAWzX,GAAQE,GAAM;AAC1C,UAAIspB,IAAM,UAAU;AACpB,MAAAtpB,IAAO,IAAI,MAAMspB,IAAM,IAAIA,IAAM,IAAI,CAAC;AACtC,eAASviB,IAAM,GAAGA,IAAMuiB,GAAKviB;AAC3B,QAAA/G,EAAK+G,IAAM,CAAC,IAAI,UAAUA,CAAG;AAE/B,UAAIjH,MAAW;AACb,cAAM,IAAI;AAAA,UACN;AAAA,QAEH;AAEH,MAAKyX,KACHrX,EAAa,MAAM,MAAM,CAACJ,CAAM,EAAE,OAAOE,CAAI,CAAC;AAAA,IAEjD;AAAA,EACH;AAEA,SAAAwpB,KAAiBH;;;;;;;;;;;ACtDjB,KAAC,WAAY;AAGZ,UAAII,IAAY,CAAC,EAChB,OAAO,SAAW,OAClB,OAAO,YACP,OAAO,SAAS,gBAGbC,IAAuB;AAAA,QAE1B,WAAWD;AAAA,QAEX,eAAe,OAAO,SAAW;AAAA,QAEjC,sBACCA,KAAa,CAAC,EAAE,OAAO,oBAAoB,OAAO;AAAA,QAEnD,gBAAgBA,KAAa,CAAC,CAAC,OAAO;AAAA,MAEtC;AAMM,MAAqC/e,EAAO,UAClDA,YAAiBgf,IAEjB,OAAO,uBAAuBA;AAAA,IAGhC;;;;;;UCrCA,OAAO,eAAeC,IAAS,cAAc;AAAA,IAC3C,OAAO;AAAA,EACT,CAAC,GACDA,GAAA,YAAoB;AAEpB,MAAIC,IAASjsB,GAAgB,GAEzBksB,IAAUvB,EAAuBsB,CAAM;AAE3C,WAAStB,EAAuBC,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;EAAM;AAE7F,MAAIuB,IAAKD,EAAQ,SAEbE,IAAkBD,EAAG,YAAY,OAAO,cAAc,CAAE;AAE5C,SAAAH,GAAA,YAAoBG,EAAG,WAEvCH,GAAA,UAAkBI;;;;;UCjBlB,OAAO,eAAeC,IAAS,cAAc;AAAA,IAC3C,OAAO;AAAA,EACT,CAAC,GACDA,GAAA,iBAAyBC,GACzBD,GAAA,aAAqBE,GACrBF,GAAA,kBAA0BG,GAC1BH,GAAA,OAAeI,GACfJ,GAAA,OAAeK,GACfL,GAAA,+BAAuCM,GACvCN,GAAA,kBAA0BO;AAE1B,MAAIC,IAAW7sB,GAAkB,GAE7B8sB,IAAYnC,EAAuBkC,CAAQ,GAE3CE,IAAmB5gB,GAA4B;AAEnD,WAASwe,EAAuBC,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;EAAM;AAE7F,MAAIoC,IAAgB;AAEpB,WAASV,EAAeW,GAAUC,GAAU;AAC1C,QAAI,CAACD,KAAY,CAACA,EAAS;AACzB,YAAM,IAAI,MAAM,sDAAsDC,IAAW,GAAG;AAAA,EAExF;AAEA,WAASX,EAAWtlB,GAAS;AAC3B,QAAIkmB,IAAalmB;AACjB,QAAI,OAAOkmB,KAAe,YAAYJ,EAAiB,WAAW;AAChE,UAAI/B,IAAK,SAAS,iBAAiBmC,CAAU;AAC7C,MAAAb,EAAetB,GAAImC,CAAU,GAC7BA,IAAa,YAAYnC,IAAKA,EAAG,CAAC,IAAIA;AAAA,IAC1C;AACE,WAAAgC,IAAgBG,KAAcH,GACvBA;AAAA,EACT;AAEA,WAASR,EAAgBY,GAAY;AACnC,WAAI,CAACA,KAAc,CAACJ,SACdF,EAAU,SAAS,IAAO,CAAC,4CAA4C,kEAAkE,2DAA2D,oEAAoE,mCAAmC,EAAE,KAAK,GAAG,CAAC,GAEnT,MAGF;AAAA,EACT;AAEA,WAASL,EAAKW,GAAY;AACxB,IAAIZ,EAAgBY,CAAU,MAC3BA,KAAcJ,GAAe,aAAa,eAAe,MAAM;AAAA,EAEpE;AAEA,WAASN,EAAKU,GAAY;AACxB,IAAIZ,EAAgBY,CAAU,MAC3BA,KAAcJ,GAAe,gBAAgB,aAAa;AAAA,EAE/D;AAEA,WAASL,IAA+B;AACtC,IAAAK,IAAgB;AAAA,EAClB;AAEA,WAASJ,IAAkB;AACzB,IAAAI,IAAgB;AAAA,EAClB;;;;;;UClEA,OAAO,eAAeK,IAAS,cAAc;AAAA,IAC3C,OAAO;AAAA,EACT,CAAC,GACDA,GAAA,iBAAyBC;AACzB,MAAIC,IAAgB,CAAE,GAClBC,IAAmB,CAAE;AAEzB,WAASF,IAAiB;AACxB,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAIha,IAAU,SAAS,qBAAqB,MAAM,EAAE,CAAC,EAAE,WACnDma,IAAS;AAAA;AAAA;AAEb,MAAAA,KAAU,eAAena,IAAU;AAAA;AACnC,eAAShO,KAAKioB;AACZ,QAAAE,KAAU,OAAOnoB,IAAI,MAAMioB,EAAcjoB,CAAC,IAAI;AAAA;AAGhD,MAAAgO,IAAU,SAAS,KAAK,WAGxBma,KAAU;AAAA;AAAA,cAAmBna,IAAU;AAAA;AACvC,eAASoa,KAAMF;AACb,QAAAC,KAAU,OAAOC,IAAK,MAAMF,EAAiBE,CAAE,IAAI;AAAA;AAGrD,MAAAD,KAAU;AAAA,GAGV,QAAQ,IAAIA,CAAM;AAAA,IACtB;AAAA,EACA;AAQA,MAAIE,IAAqB,SAA4BC,GAAMphB,GAAW;AACpE,WAAKohB,EAAKphB,CAAS,MACjBohB,EAAKphB,CAAS,IAAI,IAEpBohB,EAAKphB,CAAS,KAAK,GACZA;AAAA,EACR,GAQGqhB,IAAqB,SAA4BD,GAAMphB,GAAW;AACpE,WAAIohB,EAAKphB,CAAS,MAChBohB,EAAKphB,CAAS,KAAK,IAEdA;AAAA,EACR,GAQGshB,IAAa,SAAoBC,GAAcH,GAAMta,GAAS;AAChE,IAAAA,EAAQ,QAAQ,SAAU9G,GAAW;AACnC,MAAAmhB,EAAmBC,GAAMphB,CAAS,GAClCuhB,EAAa,IAAIvhB,CAAS;AAAA,IAC9B,CAAG;AAAA,EACF,GASGwhB,IAAe,SAAsBD,GAAcH,GAAMta,GAAS;AACpE,IAAAA,EAAQ,QAAQ,SAAU9G,GAAW;AACnC,MAAAqhB,EAAmBD,GAAMphB,CAAS,GAClCohB,EAAKphB,CAAS,MAAM,KAAKuhB,EAAa,OAAOvhB,CAAS;AAAA,IAC1D,CAAG;AAAA,EACF;AAQS6gB,SAAAA,GAAA,MAAc,SAAapmB,GAASgnB,GAAa;AACzD,WAAOH,EAAW7mB,EAAQ,WAAWA,EAAQ,SAAS,YAAW,KAAM,SAASsmB,IAAgBC,GAAkBS,EAAY,MAAM,GAAG,CAAC;AAAA,KAS7HZ,GAAA,SAAiB,SAAgBpmB,GAASgnB,GAAa;AAClE,WAAOD,EAAa/mB,EAAQ,WAAWA,EAAQ,SAAS,YAAW,KAAM,SAASsmB,IAAgBC,GAAkBS,EAAY,MAAM,GAAG,CAAC;AAAA;;;;;ACvG5I,WAAO,eAAwB9E,GAAA,cAAc;AAAA,MAC3C,OAAO;AAAA,IACT,CAAC;AAED,aAAS+E,EAAgBC,GAAUC,GAAa;AAAE,UAAI,EAAED,aAAoBC;AAAgB,cAAM,IAAI,UAAU,mCAAmC;AAAA,IAAI;AAIvJ,QAAIC,IAAsB,SAASA,IAAsB;AACvD,UAAI7S,IAAQ;AAEZ,MAAA0S,EAAgB,MAAMG,CAAmB,GAEzC,KAAK,WAAW,SAAUC,GAAc;AACtC,YAAI9S,EAAM,cAAc,QAAQ8S,CAAY,MAAM,IAAI;AACpD,UAAI,QAAQ,IAAI,aAAa,gBAE3B,QAAQ,KAAK,iEAAiE;AAEhF;AAAA,QACN;AACI,QAAA9S,EAAM,cAAc,KAAK8S,CAAY,GACrC9S,EAAM,KAAK,UAAU;AAAA,MACtB,GAED,KAAK,aAAa,SAAU8S,GAAc;AACxC,YAAIjf,IAAQmM,EAAM,cAAc,QAAQ8S,CAAY;AACpD,YAAIjf,MAAU,IAAI;AAChB,UAAI,QAAQ,IAAI,aAAa,gBAE3B,QAAQ,KAAK,uCAAuCif,IAAe,6BAAkC;AAEvG;AAAA,QACN;AACI,QAAA9S,EAAM,cAAc,OAAOnM,GAAO,CAAC,GACnCmM,EAAM,KAAK,YAAY;AAAA,MACxB,GAED,KAAK,YAAY,SAAUM,GAAU;AACnC,QAAAN,EAAM,YAAY,KAAKM,CAAQ;AAAA,MAChC,GAED,KAAK,OAAO,SAAUyS,GAAW;AAC/B,QAAA/S,EAAM,YAAY,QAAQ,SAAUgT,GAAY;AAC9C,iBAAOA;AAAA,YAAWD;AAAA;AAAA,YAElB/S,EAAM,cAAc;UAAO;AAAA,QACjC,CAAK;AAAA,MACF,GAED,KAAK,gBAAgB,CAAE,GACvB,KAAK,cAAc,CAAE;AAAA,IACtB,GAEGiT,IAAsB,IAAIJ,EAAqB;AAEnD,IAAAlF,EAAA,UAAkBsF,GAClB1hB,EAAiB,UAAAoc,EAAQ;AAAA;;;;;;ACzDzB,MAAIuF,IAAuB1uB,GAAgC,GAEvD2uB,IAAwBhE,EAAuB+D,CAAoB;AAEvE,WAAS/D,EAAuBC,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;EAAM;AAI7F,MAAIgE,IAAS,QACTC,IAAQ,QACRC,IAAY,CAAE;AAElB,WAASC,IAAe;AACtB,QAAID,EAAU,WAAW,GAAG;AAC1B,MAAI,QAAQ,IAAI,aAAa,gBAE3B,QAAQ,KAAK,0CAA0C;AAEzD;AAAA,IACJ;AACE,IAAAA,EAAUA,EAAU,SAAS,CAAC,EAAE,aAAc;AAAA,EAChD;AAEA,WAASE,EAAST,GAAWU,GAAe;AAC1C,KAAI,CAACL,KAAU,CAACC,OACdD,IAAS,SAAS,cAAc,KAAK,GACrCA,EAAO,aAAa,8BAA8B,EAAE,GACpDA,EAAO,MAAM,WAAW,YACxBA,EAAO,MAAM,UAAU,KACvBA,EAAO,aAAa,YAAY,GAAG,GACnCA,EAAO,iBAAiB,SAASG,CAAY,GAC7CF,IAAQD,EAAO,UAAW,GAC1BC,EAAM,iBAAiB,SAASE,CAAY,IAG9CD,IAAYG,GAERH,EAAU,SAAS,KAEjB,SAAS,KAAK,eAAeF,KAC/B,SAAS,KAAK,aAAaA,GAAQ,SAAS,KAAK,UAAU,GAEzD,SAAS,KAAK,cAAcC,KAC9B,SAAS,KAAK,YAAYA,CAAK,MAI7BD,EAAO,iBACTA,EAAO,cAAc,YAAYA,CAAM,GAErCC,EAAM,iBACRA,EAAM,cAAc,YAAYA,CAAK;AAAA,EAG3C;AAEA,SAAAF,EAAsB,QAAQ,UAAUK,CAAQ;;;;;ACxDhD,WAAO,eAAwB7F,GAAA,cAAc;AAAA,MAC3C,OAAO;AAAA,IACT,CAAC;AAED,QAAIhU,IAAW,OAAO,UAAU,SAAUF,GAAQ;AAAE,eAASrK,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,YAAIxF,IAAS,UAAUwF,CAAC;AAAG,iBAASxB,KAAOhE;AAAU,UAAI,OAAO,UAAU,eAAe,KAAKA,GAAQgE,CAAG,MAAK6L,EAAO7L,CAAG,IAAIhE,EAAOgE,CAAG;AAAA,MAAQ;AAAC,aAAO6L;AAAA,IAAS,GAE5Pia,IAAU,OAAO,UAAW,cAAc,OAAO,OAAO,YAAa,WAAW,SAAUtE,GAAK;AAAE,aAAO,OAAOA;AAAA,IAAM,IAAG,SAAUA,GAAK;AAAE,aAAOA,KAAO,OAAO,UAAW,cAAcA,EAAI,gBAAgB,UAAUA,MAAQ,OAAO,YAAY,WAAW,OAAOA;AAAA,IAAM,GAExQuE,IAAe,2BAAY;AAAE,eAASC,EAAiBna,GAAQnQ,GAAO;AAAE,iBAAS8F,IAAI,GAAGA,IAAI9F,EAAM,QAAQ8F,KAAK;AAAE,cAAI6O,IAAa3U,EAAM8F,CAAC;AAAG,UAAA6O,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAexE,GAAQwE,EAAW,KAAKA,CAAU;AAAA,QAAI;AAAA,MAAA;AAAG,aAAO,SAAU2U,GAAaiB,GAAYC,GAAa;AAAE,eAAID,KAAYD,EAAiBhB,EAAY,WAAWiB,CAAU,GAAOC,KAAaF,EAAiBhB,GAAakB,CAAW,GAAUlB;AAAA,MAAY;AAAA,IAAG,EAAI,GAE/iBmB,IAASvvB,IAETwvB,IAAU7E,EAAuB4E,CAAM,GAEvCE,IAAkCtjB,gBAAAA,GAAA,GAElCujB,IAAc/E,EAAuB8E,CAAU,GAE/CE,IAAgB5d,GAAkC,GAElDkY,IAAe2F,EAAwBD,CAAa,GAEpDE,IAAY5d,GAA8B,GAE1C6d,IAAanF,EAAuBkF,CAAS,GAE7CE,IAAgB5d,GAAkC,GAElDka,IAAeuD,EAAwBG,CAAa,GAEpDC,IAAa3d,GAA+B,GAE5Cgb,IAAYuC,EAAwBI,CAAU,GAE9CjD,IAAmBxa,GAAqC,GAExD0d,IAAoBtF,EAAuBoC,CAAgB,GAE3D2B,IAAuBjc,GAAyC,GAEhEkc,IAAwBhE,EAAuB+D,CAAoB;AAEzC/b,IAAAA,GAAA;AAE9B,aAASid,EAAwBhF,GAAK;AAAE,UAAIA,KAAOA,EAAI;AAAc,eAAOA;AAAc,UAAIsF,IAAS,CAAE;AAAE,UAAItF,KAAO;AAAQ,iBAASxhB,KAAOwhB;AAAO,UAAI,OAAO,UAAU,eAAe,KAAKA,GAAKxhB,CAAG,MAAG8mB,EAAO9mB,CAAG,IAAIwhB,EAAIxhB,CAAG;AAAO,aAAA8mB,EAAO,UAAUtF,GAAYsF;AAAA,IAAS;AAE3Q,aAASvF,EAAuBC,GAAK;AAAE,aAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;IAAM;AAE7F,aAASsD,EAAgBC,GAAUC,GAAa;AAAE,UAAI,EAAED,aAAoBC;AAAgB,cAAM,IAAI,UAAU,mCAAmC;AAAA,IAAI;AAEvJ,aAAS+B,EAA2BrnB,GAAMsnB,GAAM;AAAE,UAAI,CAACtnB;AAAQ,cAAM,IAAI,eAAe,2DAA2D;AAAK,aAAOsnB,MAAS,OAAOA,KAAS,YAAY,OAAOA,KAAS,cAAcA,IAAOtnB;AAAA,IAAK;AAE9O,aAASunB,EAAU9a,GAAUC,GAAY;AAAE,UAAI,OAAOA,KAAe,cAAcA,MAAe;AAAQ,cAAM,IAAI,UAAU,6DAA6D,OAAOA,CAAU;AAAK,MAAAD,EAAS,YAAY,OAAO,OAAOC,KAAcA,EAAW,WAAW,EAAE,aAAa,EAAE,OAAOD,GAAU,YAAY,IAAO,UAAU,IAAM,cAAc,GAAI,GAAI,GAAOC,MAAY,OAAO,iBAAiB,OAAO,eAAeD,GAAUC,CAAU,IAAID,EAAS,YAAYC;AAAA,IAAW;AAG5e,QAAI8a,IAAc;AAAA,MAChB,SAAS;AAAA,MACT,SAAS;AAAA,IACV,GAEGC,IAAU,GACVC,IAAU,IAEVC,IAAsB,GAEtBC,IAAc,SAAUC,GAAY;AACtC,MAAAN,EAAUK,GAAaC,CAAU;AAEjC,eAASD,EAAY5rB,GAAO;AAC1B,QAAAopB,EAAgB,MAAMwC,CAAW;AAEjC,YAAIlV,IAAQ2U,EAA2B,OAAOO,EAAY,aAAa,OAAO,eAAeA,CAAW,GAAG,KAAK,MAAM5rB,CAAK,CAAC;AAE5H,eAAA0W,EAAM,gBAAgB,SAAUoV,GAAS;AACvC,UAAApV,EAAM,UAAUoV,GAChBpV,EAAM,MAAM,cAAcA,EAAM,MAAM,WAAWoV,CAAO;AAAA,QACzD,GAEDpV,EAAM,gBAAgB,SAAU9O,GAAS;AACvC,UAAA8O,EAAM,UAAU9O,GAChB8O,EAAM,MAAM,cAAcA,EAAM,MAAM,WAAW9O,CAAO;AAAA,QACzD,GAED8O,EAAM,aAAa,WAAY;AAC7B,cAAIY,IAAcZ,EAAM,OACpB4R,IAAahR,EAAY,YACzByU,IAAczU,EAAY,aAC1B0U,IAAoB1U,EAAY,mBAChC2U,IAAoB3U,EAAY;AAIpC,UAAA2U,KAAqB1D,EAAU,OAAO,SAAS,MAAM0D,CAAiB,GAEtED,KAAqBzD,EAAU,OAAO,SAAS,qBAAqB,MAAM,EAAE,CAAC,GAAGyD,CAAiB,GAG7FD,KAAeJ,IAAsB,MACvCA,KAAuB,GAEnBA,MAAwB,KAC1BpE,EAAa,KAAKe,CAAU,IAI5B5R,EAAM,MAAM,2BACVA,EAAM,MAAM,+BACdyO,EAAa,YAAa,GAC1BA,EAAa,oBAAqB,KAElCA,EAAa,gBAAiB,IAI9BzO,EAAM,MAAM,gBACdA,EAAM,MAAM,aAAc,GAG5BmT,EAAsB,QAAQ,WAAWnT,CAAK;AAAA,QAC/C,GAEDA,EAAM,OAAO,WAAY;AACvB,UAAAA,EAAM,WAAY,GACdA,EAAM,MAAM,aAAaA,EAAM,MAAM,eACvC,aAAaA,EAAM,UAAU,GAC7BA,EAAM,SAAS,EAAE,aAAa,GAAK,CAAE,MAEjCA,EAAM,MAAM,2BACdyO,EAAa,iBAAiBzO,EAAM,IAAI,GACxCyO,EAAa,kBAAmB,IAGlCzO,EAAM,SAAS,EAAE,QAAQ,GAAM,GAAE,WAAY;AAC3C,YAAAA,EAAM,SAAS,EAAE,WAAW,GAAI,CAAE,GAE9BA,EAAM,MAAM,UAAUA,EAAM,MAAM,eACpCA,EAAM,MAAM,YAAY;AAAA,cACtB,WAAWA,EAAM;AAAA,cACjB,WAAWA,EAAM;AAAA,YAC/B,CAAa;AAAA,UAEb,CAAS;AAAA,QAEJ,GAEDA,EAAM,QAAQ,WAAY;AACxB,UAAIA,EAAM,MAAM,iBAAiB,IAC/BA,EAAM,iBAAkB,IAExBA,EAAM,oBAAqB;AAAA,QAE9B,GAEDA,EAAM,eAAe,WAAY;AAC/B,iBAAOA,EAAM,WAAW,CAACA,EAAM,gBAAe,KAAMA,EAAM,QAAQ,MAAO;AAAA,QAC1E,GAEDA,EAAM,mBAAmB,WAAY;AACnC,cAAIwV,IAAW,KAAK,IAAK,IAAGxV,EAAM,MAAM;AACxC,UAAAA,EAAM,SAAS,EAAE,aAAa,IAAM,UAAUwV,EAAQ,GAAI,WAAY;AACpE,YAAAxV,EAAM,aAAa,WAAWA,EAAM,qBAAqBA,EAAM,MAAM,WAAW,KAAK,KAAK;AAAA,UAClG,CAAO;AAAA,QACF,GAEDA,EAAM,sBAAsB,WAAY;AACtC,UAAAA,EAAM,SAAS;AAAA,YACb,aAAa;AAAA,YACb,QAAQ;AAAA,YACR,WAAW;AAAA,YACX,UAAU;AAAA,UAClB,GAASA,EAAM,UAAU;AAAA,QACpB,GAEDA,EAAM,gBAAgB,SAAU2P,GAAO;AACrC,UAAIA,EAAM,YAAYoF,SAChBT,EAAW,SAAStU,EAAM,SAAS2P,CAAK,GAG1C3P,EAAM,MAAM,oBAAoB2P,EAAM,YAAYqF,MACpDrF,EAAM,gBAAiB,GACvB3P,EAAM,aAAa2P,CAAK;AAAA,QAE3B,GAED3P,EAAM,uBAAuB,SAAU2P,GAAO;AAC5C,UAAI3P,EAAM,gBAAgB,SACxBA,EAAM,cAAc,KAGlBA,EAAM,eAAeA,EAAM,MAAM,8BAC/BA,EAAM,sBACRA,EAAM,aAAa2P,CAAK,IAExB3P,EAAM,aAAc,IAGxBA,EAAM,cAAc;AAAA,QACrB,GAEDA,EAAM,yBAAyB,WAAY;AACzC,UAAAA,EAAM,cAAc;AAAA,QACrB,GAEDA,EAAM,2BAA2B,SAAU2P,GAAO;AAChD,UAAI,CAAC3P,EAAM,MAAM,6BAA6B2P,EAAM,UAAU3P,EAAM,WAClE2P,EAAM,eAAgB;AAAA,QAEzB,GAED3P,EAAM,uBAAuB,WAAY;AACvC,UAAAA,EAAM,cAAc;AAAA,QACrB,GAEDA,EAAM,2BAA2B,WAAY;AAC3C,UAAAA,EAAM,cAAc;AAAA,QACrB,GAEDA,EAAM,eAAe,SAAU2P,GAAO;AACpC,iBAAO3P,EAAM,kBAAmB,KAAIA,EAAM,MAAM,eAAe2P,CAAK;AAAA,QACrE,GAED3P,EAAM,oBAAoB,WAAY;AACpC,iBAAOA,EAAM,MAAM;AAAA,QACpB,GAEDA,EAAM,iBAAiB,WAAY;AACjC,iBAAO,CAACA,EAAM,MAAM,UAAU,CAACA,EAAM,MAAM;AAAA,QAC5C,GAEDA,EAAM,kBAAkB,WAAY;AAClC,iBAAO,SAAS,kBAAkBA,EAAM,WAAWA,EAAM,QAAQ,SAAS,SAAS,aAAa;AAAA,QACjG,GAEDA,EAAM,iBAAiB,SAAUyV,GAAOC,GAAY;AAClD,cAAIzkB,KAAc,OAAOykB,IAAe,MAAc,cAAchC,EAAQgC,CAAU,OAAO,WAAWA,IAAa;AAAA,YACnH,MAAMZ,EAAYW,CAAK;AAAA,YACvB,WAAWX,EAAYW,CAAK,IAAI;AAAA,YAChC,aAAaX,EAAYW,CAAK,IAAI;AAAA,UACnC,GACGzkB,IAAYC,EAAW;AAC3B,iBAAI+O,EAAM,MAAM,cACdhP,IAAYA,IAAY,MAAMC,EAAW,YAEvC+O,EAAM,MAAM,gBACdhP,IAAYA,IAAY,MAAMC,EAAW,cAEpC,OAAOykB,KAAe,YAAYA,IAAa1kB,IAAY,MAAM0kB,IAAa1kB;AAAA,QACtF,GAEDgP,EAAM,uBAAuB,SAAUvW,GAAQksB,GAAO;AACpD,iBAAO,OAAO,KAAKA,CAAK,EAAE,OAAO,SAAUC,GAAKjsB,GAAM;AACpD,mBAAAisB,EAAInsB,IAAS,MAAME,CAAI,IAAIgsB,EAAMhsB,CAAI,GAC9BisB;AAAA,UACR,GAAE,EAAE;AAAA,QACN,GAED5V,EAAM,QAAQ;AAAA,UACZ,WAAW;AAAA,UACX,aAAa;AAAA,QACd,GAEDA,EAAM,cAAc,MACpBA,EAAM,2BAA2B,MAC1BA;AAAA,MACX;AAEE,aAAA2T,EAAauB,GAAa,CAAC;AAAA,QACzB,KAAK;AAAA,QACL,OAAO,WAA6B;AAClC,UAAI,KAAK,MAAM,UACb,KAAK,KAAM;AAAA,QAEnB;AAAA,MACA,GAAK;AAAA,QACD,KAAK;AAAA,QACL,OAAO,SAA4B/U,GAAWC,GAAW;AACvD,UAAI,QAAQ,IAAI,aAAa,iBACvBD,EAAU,sBAAsB,KAAK,MAAM,qBAE7C,QAAQ,KAAK,4HAAiI,GAE5IA,EAAU,sBAAsB,KAAK,MAAM,qBAE7C,QAAQ,KAAK,4HAAiI,IAI9I,KAAK,MAAM,UAAU,CAACA,EAAU,SAClC,KAAK,KAAM,IACF,CAAC,KAAK,MAAM,UAAUA,EAAU,UACzC,KAAK,MAAO,GAIV,KAAK,MAAM,0BAA0B,KAAK,MAAM,UAAU,CAACC,EAAU,UACvE,KAAK,aAAc;AAAA,QAE3B;AAAA,MACA,GAAK;AAAA,QACD,KAAK;AAAA,QACL,OAAO,WAAgC;AACrC,UAAI,KAAK,MAAM,UACb,KAAK,WAAY,GAEnB,aAAa,KAAK,UAAU;AAAA,QAClC;AAAA,MACA,GAAK;AAAA,QACD,KAAK;AAAA,QACL,OAAO,WAAsB;AAC3B,cAAIyV,IAAS,KAAK,OACdjE,IAAaiE,EAAO,YACpBR,IAAcQ,EAAO,aACrBP,IAAoBO,EAAO,mBAC3BN,IAAoBM,EAAO;AAI/B,UAAAN,KAAqB1D,EAAU,IAAI,SAAS,MAAM0D,CAAiB,GAEnED,KAAqBzD,EAAU,IAAI,SAAS,qBAAqB,MAAM,EAAE,CAAC,GAAGyD,CAAiB,GAE1FD,MACFJ,KAAuB,GACvBpE,EAAa,KAAKe,CAAU,IAG9BuB,EAAsB,QAAQ,SAAS,IAAI;AAAA,QACjD;AAAA;AAAA,MAIA,GAAK;AAAA,QACD,KAAK;AAAA,QACL,OAAO,WAAkB;AACvB,cAAI2C,IAAU,KAAK,OACflO,IAAKkO,EAAQ,IACb9kB,IAAY8kB,EAAQ,WACpBC,IAAmBD,EAAQ,kBAC3BE,IAAgBF,EAAQ,eAExBG,IAAgBjlB,IAAY,CAAE,IAAGglB,EAAc,SAC/CE,IAAgBH,IAAmB,CAAE,IAAGC,EAAc;AAE1D,iBAAO,KAAK,eAAgB,IAAG,OAAOhC,EAAQ,QAAQ;AAAA,YACpD;AAAA,YACA;AAAA,cACE,KAAK,KAAK;AAAA,cACV,WAAW,KAAK,eAAe,WAAW+B,CAAgB;AAAA,cAC1D,OAAOpc,EAAS,IAAIuc,GAAe,KAAK,MAAM,MAAM,OAAO;AAAA,cAC3D,SAAS,KAAK;AAAA,cACd,aAAa,KAAK;AAAA,YACnB;AAAA,YACDlC,EAAQ,QAAQ;AAAA,cACd;AAAA,cACAra,EAAS;AAAA,gBACP,IAAIiO;AAAA,gBACJ,KAAK,KAAK;AAAA,gBACV,OAAOjO,EAAS,IAAIsc,GAAe,KAAK,MAAM,MAAM,OAAO;AAAA,gBAC3D,WAAW,KAAK,eAAe,WAAWjlB,CAAS;AAAA,gBACnD,UAAU;AAAA,gBACV,WAAW,KAAK;AAAA,gBAChB,aAAa,KAAK;AAAA,gBAClB,WAAW,KAAK;AAAA,gBAChB,SAAS,KAAK;AAAA,gBACd,MAAM,KAAK,MAAM;AAAA,gBACjB,cAAc,KAAK,MAAM;AAAA,cACrC,GAAa,KAAK,qBAAqB,QAAQ,KAAK,MAAM,QAAQ,CAAE,CAAA,GAAG,KAAK,qBAAqB,QAAQ,KAAK,MAAM,QAAQ,CAAA,CAAE,GAAG;AAAA,gBACrH,eAAe,KAAK,MAAM;AAAA,cACtC,CAAW;AAAA,cACD,KAAK,MAAM;AAAA,YACrB;AAAA,UACO;AAAA,QACP;AAAA,MACA,CAAG,CAAC,GAEKkkB;AAAA,IACT,EAAEnB,EAAO,SAAS;AAElB,IAAAmB,EAAY,eAAe;AAAA,MACzB,OAAO;AAAA,QACL,SAAS,CAAE;AAAA,QACX,SAAS,CAAA;AAAA,MACV;AAAA,MACD,eAAe,CAAA;AAAA,IAChB,GACDA,EAAY,YAAY;AAAA,MACtB,QAAQhB,EAAY,QAAQ,KAAK;AAAA,MACjC,eAAeA,EAAY,QAAQ,MAAM;AAAA,QACvC,SAASA,EAAY,QAAQ;AAAA,QAC7B,SAASA,EAAY,QAAQ;AAAA,MACjC,CAAG;AAAA,MACD,OAAOA,EAAY,QAAQ,MAAM;AAAA,QAC/B,SAASA,EAAY,QAAQ;AAAA,QAC7B,SAASA,EAAY,QAAQ;AAAA,MACjC,CAAG;AAAA,MACD,WAAWA,EAAY,QAAQ,UAAU,CAACA,EAAY,QAAQ,QAAQA,EAAY,QAAQ,MAAM,CAAC;AAAA,MACjG,kBAAkBA,EAAY,QAAQ,UAAU,CAACA,EAAY,QAAQ,QAAQA,EAAY,QAAQ,MAAM,CAAC;AAAA,MACxG,mBAAmBA,EAAY,QAAQ;AAAA,MACvC,mBAAmBA,EAAY,QAAQ;AAAA,MACvC,aAAaA,EAAY,QAAQ;AAAA,MACjC,YAAYA,EAAY,QAAQ,WAAWO,EAAkB,OAAO;AAAA,MACpE,aAAaP,EAAY,QAAQ;AAAA,MACjC,cAAcA,EAAY,QAAQ;AAAA,MAClC,gBAAgBA,EAAY,QAAQ;AAAA,MACpC,gBAAgBA,EAAY,QAAQ;AAAA,MACpC,wBAAwBA,EAAY,QAAQ;AAAA,MAC5C,2BAA2BA,EAAY,QAAQ;AAAA,MAC/C,6BAA6BA,EAAY,QAAQ;AAAA,MACjD,MAAMA,EAAY,QAAQ;AAAA,MAC1B,cAAcA,EAAY,QAAQ;AAAA,MAClC,MAAMA,EAAY,QAAQ;AAAA,MAC1B,MAAMA,EAAY,QAAQ;AAAA,MAC1B,UAAUA,EAAY,QAAQ;AAAA,MAC9B,kBAAkBA,EAAY,QAAQ;AAAA,MACtC,YAAYA,EAAY,QAAQ;AAAA,MAChC,YAAYA,EAAY,QAAQ;AAAA,MAChC,IAAIA,EAAY,QAAQ;AAAA,MACxB,QAAQA,EAAY,QAAQ;AAAA,IAC7B,GACDvG,EAAA,UAAkBuH,GAClB3jB,EAAiB,UAAAoc,EAAQ;AAAA;;AC/ZzB,SAASwI,KAAqB;AAE5B,MAAIrW,IAAQ,KAAK,YAAY,yBAAyB,KAAK,OAAO,KAAK,KAAK;AAC5E,EAAIA,KAAU,QACZ,KAAK,SAASA,CAAK;AAEvB;AAEA,SAASsW,GAA0BC,GAAW;AAG5C,WAASC,EAAQlW,GAAW;AAC1B,QAAIN,IAAQ,KAAK,YAAY,yBAAyBuW,GAAWjW,CAAS;AAC1E,WAAON,KAAgD;AAAA,EAC3D;AAEE,OAAK,SAASwW,EAAQ,KAAK,IAAI,CAAC;AAClC;AAEA,SAASC,GAAoBF,GAAWhW,GAAW;AACjD,MAAI;AACF,QAAIF,IAAY,KAAK,OACjBC,IAAY,KAAK;AACrB,SAAK,QAAQiW,GACb,KAAK,QAAQhW,GACb,KAAK,8BAA8B,IACnC,KAAK,0BAA0B,KAAK;AAAA,MAClCF;AAAA,MACAC;AAAA,IACD;AAAA,EACL,UAAY;AACR,SAAK,QAAQD,GACb,KAAK,QAAQC;AAAA,EACjB;AACA;AAIA+V,GAAmB,+BAA+B;AAClDC,GAA0B,+BAA+B;AACzDG,GAAoB,+BAA+B;AAEnD,SAASC,GAASrrB,GAAW;AAC3B,MAAIC,IAAYD,EAAU;AAE1B,MAAI,CAACC,KAAa,CAACA,EAAU;AAC3B,UAAM,IAAI,MAAM,oCAAoC;AAGtD,MACE,OAAOD,EAAU,4BAA6B,cAC9C,OAAOC,EAAU,2BAA4B;AAE7C,WAAOD;AAMT,MAAIsrB,IAAqB,MACrBC,IAA4B,MAC5BC,IAAsB;AAgB1B,MAfI,OAAOvrB,EAAU,sBAAuB,aAC1CqrB,IAAqB,uBACZ,OAAOrrB,EAAU,6BAA8B,eACxDqrB,IAAqB,8BAEnB,OAAOrrB,EAAU,6BAA8B,aACjDsrB,IAA4B,8BACnB,OAAOtrB,EAAU,oCAAqC,eAC/DsrB,IAA4B,qCAE1B,OAAOtrB,EAAU,uBAAwB,aAC3CurB,IAAsB,wBACb,OAAOvrB,EAAU,8BAA+B,eACzDurB,IAAsB,+BAGtBF,MAAuB,QACvBC,MAA8B,QAC9BC,MAAwB,MACxB;AACA,QAAI5qB,IAAgBZ,EAAU,eAAeA,EAAU,MACnDyrB,IACF,OAAOzrB,EAAU,4BAA6B,aAC1C,+BACA;AAEN,UAAM;AAAA,MACJ;AAAA;AAAA,IACEY,IACA,WACA6qB,IACA,yDACCH,MAAuB,OAAO;AAAA,MAASA,IAAqB,OAC5DC,MAA8B,OAC3B;AAAA,MAASA,IACT,OACHC,MAAwB,OAAO;AAAA,MAASA,IAAsB,MAC/D;AAAA;AAAA;AAAA;AAAA,IAEH;AAAA,EACL;AAaE,MARI,OAAOxrB,EAAU,4BAA6B,eAChDC,EAAU,qBAAqB+qB,IAC/B/qB,EAAU,4BAA4BgrB,KAMpC,OAAOhrB,EAAU,2BAA4B,YAAY;AAC3D,QAAI,OAAOA,EAAU,sBAAuB;AAC1C,YAAM,IAAI;AAAA,QACR;AAAA,MACD;AAGH,IAAAA,EAAU,sBAAsBmrB;AAEhC,QAAIM,IAAqBzrB,EAAU;AAEnC,IAAAA,EAAU,qBAAqB,SAC7B+U,GACAC,GACA0W,GACA;AASA,UAAIC,IAAW,KAAK,8BAChB,KAAK,0BACLD;AAEJ,MAAAD,EAAmB,KAAK,MAAM1W,GAAWC,GAAW2W,CAAQ;AAAA,IAC7D;AAAA,EACL;AAEE,SAAO5rB;AACT;;;;;;;;UCzJA,OAAO,eAAe6rB,IAAS,cAAc;AAAA,IAC3C,OAAO;AAAA,EACT,CAAC,GACwBA,GAAA,oBAAGA,GAAuB,kBAAG;AAEtD,MAAIrd,IAAW,OAAO,UAAU,SAAUF,GAAQ;AAAE,aAASrK,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,UAAIxF,IAAS,UAAUwF,CAAC;AAAG,eAASxB,KAAOhE;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQgE,CAAG,MAAK6L,EAAO7L,CAAG,IAAIhE,EAAOgE,CAAG;AAAA,IAAQ;AAAC,WAAO6L;AAAA,EAAS,GAE5Pka,IAAe,2BAAY;AAAE,aAASC,EAAiBna,GAAQnQ,GAAO;AAAE,eAAS8F,IAAI,GAAGA,IAAI9F,EAAM,QAAQ8F,KAAK;AAAE,YAAI6O,IAAa3U,EAAM8F,CAAC;AAAG,QAAA6O,EAAW,aAAaA,EAAW,cAAc,IAAOA,EAAW,eAAe,IAAU,WAAWA,MAAYA,EAAW,WAAW,KAAM,OAAO,eAAexE,GAAQwE,EAAW,KAAKA,CAAU;AAAA,MAAI;AAAA,IAAA;AAAG,WAAO,SAAU2U,GAAaiB,GAAYC,GAAa;AAAE,aAAID,KAAYD,EAAiBhB,EAAY,WAAWiB,CAAU,GAAOC,KAAaF,EAAiBhB,GAAakB,CAAW,GAAUlB;AAAA,IAAY;AAAA,EAAG,EAAI,GAE/iBmB,IAASvvB,IAETwvB,IAAU7E,EAAuB4E,CAAM,GAEvCkD,IAAYtmB,IAEZumB,IAAa/H,EAAuB8H,CAAS,GAE7ChD,IAAkC1d,gBAAAA,GAAA,GAElC2d,IAAc/E,EAAuB8E,CAAU,GAE/CkD,IAAe1gB,GAAwB,GAEvC2gB,IAAgBjI,EAAuBgI,CAAY,GAEnD5C,IAAgB5d,GAAkC,GAElDka,IAAeuD,EAAwBG,CAAa,GAEpDhD,IAAmB1a,GAAqC,GAExD4d,IAAoBtF,EAAuBoC,CAAgB,GAE3D8F,IAAyBtgB;AAE7B,WAASqd,EAAwBhF,GAAK;AAAE,QAAIA,KAAOA,EAAI;AAAc,aAAOA;AAAc,QAAIsF,IAAS,CAAE;AAAE,QAAItF,KAAO;AAAQ,eAASxhB,KAAOwhB;AAAO,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAKxhB,CAAG,MAAG8mB,EAAO9mB,CAAG,IAAIwhB,EAAIxhB,CAAG;AAAO,WAAA8mB,EAAO,UAAUtF,GAAYsF;AAAA,EAAS;AAE3Q,WAASvF,EAAuBC,GAAK;AAAE,WAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;EAAM;AAE7F,WAASsD,EAAgBC,GAAUC,GAAa;AAAE,QAAI,EAAED,aAAoBC;AAAgB,YAAM,IAAI,UAAU,mCAAmC;AAAA,EAAI;AAEvJ,WAAS+B,EAA2BrnB,GAAMsnB,GAAM;AAAE,QAAI,CAACtnB;AAAQ,YAAM,IAAI,eAAe,2DAA2D;AAAK,WAAOsnB,MAAS,OAAOA,KAAS,YAAY,OAAOA,KAAS,cAAcA,IAAOtnB;AAAA,EAAK;AAE9O,WAASunB,EAAU9a,GAAUC,GAAY;AAAE,QAAI,OAAOA,KAAe,cAAcA,MAAe;AAAQ,YAAM,IAAI,UAAU,6DAA6D,OAAOA,CAAU;AAAK,IAAAD,EAAS,YAAY,OAAO,OAAOC,KAAcA,EAAW,WAAW,EAAE,aAAa,EAAE,OAAOD,GAAU,YAAY,IAAO,UAAU,IAAM,cAAc,GAAI,GAAI,GAAOC,MAAY,OAAO,iBAAiB,OAAO,eAAeD,GAAUC,CAAU,IAAID,EAAS,YAAYC;AAAA,EAAW;AAE5e,MAAIsd,IAAkBN,GAAuB,kBAAG,oBAC5CzB,IAAoByB,GAAyB,oBAAG,0BAEhDO,IAAYL,EAAW,QAAQ,iBAAiB,QAEhDM,IAAkB,WAA2B;AAC/C,WAAOD,IAAYL,EAAW,QAAQ,eAAeA,EAAW,QAAQ;AAAA,EACzE;AAED,WAASO,EAAiBC,GAAgB;AACxC,WAAOA,EAAgB;AAAA,EACzB;AAEA,MAAIC,IAAQ,SAAUxC,GAAY;AAChC,IAAAN,EAAU8C,GAAOxC,CAAU;AAE3B,aAASwC,IAAQ;AACf,UAAI1Y,GAEA2Y,GAAO5X,GAAO6X;AAElB,MAAAnF,EAAgB,MAAMiF,CAAK;AAE3B,eAASG,IAAO,UAAU,QAAQjxB,IAAO,MAAMixB,CAAI,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AAC3E,QAAAlxB,EAAKkxB,CAAI,IAAI,UAAUA,CAAI;AAG7B,aAAOF,KAAQD,KAAS5X,IAAQ2U,EAA2B,OAAO1V,IAAO0Y,EAAM,aAAa,OAAO,eAAeA,CAAK,GAAG,KAAK,MAAM1Y,GAAM,CAAC,IAAI,EAAE,OAAOpY,CAAI,CAAC,CAAC,GAAGmZ,IAAQA,EAAM,eAAe,WAAY;AACzM,SAACuX,KAAaL,EAAW,QAAQ,uBAAuBlX,EAAM,IAAI;AAClE,YAAIiI,IAASwP,EAAiBzX,EAAM,MAAM,cAAc;AACxD,QAAIiI,IACFA,EAAO,YAAYjI,EAAM,IAAI,IAG7B,QAAQ,KAAK,gJAA0J;AAAA,MAE/K,GAAOA,EAAM,YAAY,SAAUnS,GAAK;AAClC,QAAAmS,EAAM,SAASnS;AAAA,MACrB,GAAOmS,EAAM,eAAe,SAAU1W,GAAO;AACvC,YAAI0uB,IAAeR,EAAiB,GAChCS,IAASD,EAAahY,GAAOgU,EAAQ,QAAQ,cAAcoD,EAAc,SAASzd,EAAS,EAAE,eAAege,EAAM,cAAa,GAAIruB,CAAK,CAAC,GAAG0W,EAAM,IAAI;AAC1J,QAAAA,EAAM,UAAUiY,CAAM;AAAA,MACvB,GAAEL,IAAQjD,EAA2B3U,GAAO6X,CAAI;AAAA,IACrD;AAEE,WAAAlE,EAAagE,GAAO,CAAC;AAAA,MACnB,KAAK;AAAA,MACL,OAAO,WAA6B;AAClC,YAAKpG,EAAiB,WAEtB;AAAA,UAAKgG,MACH,KAAK,OAAO,SAAS,cAAc,KAAK,IAE1C,KAAK,KAAK,YAAY,KAAK,MAAM;AAEjC,cAAItP,IAASwP,EAAiB,KAAK,MAAM,cAAc;AACvD,UAAAxP,EAAO,YAAY,KAAK,IAAI,GAE5B,CAACsP,KAAa,KAAK,aAAa,KAAK,KAAK;AAAA;AAAA,MAChD;AAAA,IACA,GAAK;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAiCpX,GAAW;AACjD,YAAI+X,IAAaT,EAAiBtX,EAAU,cAAc,GACtDgY,IAAaV,EAAiB,KAAK,MAAM,cAAc;AAC3D,eAAO,EAAE,YAAYS,GAAY,YAAYC,EAAY;AAAA,MAC/D;AAAA,IACA,GAAK;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAA4BhY,GAAWlO,GAAG8kB,GAAU;AACzD,YAAKxF,EAAiB,WACtB;AAAA,cAAIsE,IAAS,KAAK,OACd3N,IAAS2N,EAAO,QAChByB,IAAkBzB,EAAO;AAG7B,UAAI1V,EAAU,oBAAoBmX,MAChC,KAAK,KAAK,YAAYA;AAGxB,cAAIY,IAAanB,EAAS,YACtBoB,IAAapB,EAAS;AAQ1B,UANIoB,MAAeD,MACjBA,EAAW,YAAY,KAAK,IAAI,GAChCC,EAAW,YAAY,KAAK,IAAI,IAI9B,GAAChY,EAAU,UAAU,CAAC+H,MAE1B,CAACqP,KAAa,KAAK,aAAa,KAAK,KAAK;AAAA;AAAA,MAChD;AAAA,IACA,GAAK;AAAA,MACD,KAAK;AAAA,MACL,OAAO,WAAgC;AACrC,YAAI,GAAChG,EAAiB,aAAa,CAAC,KAAK,QAAQ,CAAC,KAAK,SAEvD;AAAA,cAAIzR,IAAQ,KAAK,OAAO,OACpBsY,IAAM,KAAK,IAAK,GAChB5C,IAAW1V,EAAM,UAAU,KAAK,MAAM,mBAAmBA,EAAM,YAAYsY,IAAM,KAAK,MAAM;AAEhG,UAAI5C,KACG1V,EAAM,eACT,KAAK,OAAO,iBAAkB,GAGhC,WAAW,KAAK,cAAc0V,IAAW4C,CAAG,KAE5C,KAAK,aAAc;AAAA;AAAA,MAE3B;AAAA,IACA,GAAK;AAAA,MACD,KAAK;AAAA,MACL,OAAO,WAAkB;AACvB,YAAI,CAAC7G,EAAiB,aAAa,CAACgG;AAClC,iBAAO;AAGT,QAAI,CAAC,KAAK,QAAQA,MAChB,KAAK,OAAO,SAAS,cAAc,KAAK;AAG1C,YAAIS,IAAeR,EAAiB;AACpC,eAAOQ,EAAahE,EAAQ,QAAQ,cAAcoD,EAAc,SAASzd,EAAS;AAAA,UAChF,KAAK,KAAK;AAAA,UACV,eAAege,EAAM;AAAA,QACtB,GAAE,KAAK,KAAK,CAAC,GAAG,KAAK,IAAI;AAAA,MAChC;AAAA,IACG,CAAA,GAAG,CAAC;AAAA,MACH,KAAK;AAAA,MACL,OAAO,SAAuBlsB,GAAS;AACrC,QAAAolB,EAAa,WAAWplB,CAAO;AAAA,MACrC;AAAA;AAAA;AAAA,IAMA,CAAG,CAAC,GAEKksB;AAAA,EACT,EAAE5D,EAAO,SAAS;AAElB4D,SAAAA,EAAM,YAAY;AAAA,IAChB,QAAQzD,EAAY,QAAQ,KAAK;AAAA,IACjC,OAAOA,EAAY,QAAQ,MAAM;AAAA,MAC/B,SAASA,EAAY,QAAQ;AAAA,MAC7B,SAASA,EAAY,QAAQ;AAAA,IACjC,CAAG;AAAA,IACD,iBAAiBA,EAAY,QAAQ;AAAA,IACrC,mBAAmBA,EAAY,QAAQ;AAAA,IACvC,mBAAmBA,EAAY,QAAQ;AAAA,IACvC,WAAWA,EAAY,QAAQ,UAAU,CAACA,EAAY,QAAQ,QAAQA,EAAY,QAAQ,MAAM;AAAA,MAC9F,MAAMA,EAAY,QAAQ,OAAO;AAAA,MACjC,WAAWA,EAAY,QAAQ,OAAO;AAAA,MACtC,aAAaA,EAAY,QAAQ,OAAO;AAAA,IACzC,CAAA,CAAC,CAAC;AAAA,IACH,kBAAkBA,EAAY,QAAQ,UAAU,CAACA,EAAY,QAAQ,QAAQA,EAAY,QAAQ,MAAM;AAAA,MACrG,MAAMA,EAAY,QAAQ,OAAO;AAAA,MACjC,WAAWA,EAAY,QAAQ,OAAO;AAAA,MACtC,aAAaA,EAAY,QAAQ,OAAO;AAAA,IACzC,CAAA,CAAC,CAAC;AAAA,IACH,YAAYA,EAAY,QAAQ,WAAWO,EAAkB,OAAO;AAAA,IACpE,aAAaP,EAAY,QAAQ;AAAA,IACjC,gBAAgBA,EAAY,QAAQ;AAAA,IACpC,gBAAgBA,EAAY,QAAQ;AAAA,IACpC,aAAaA,EAAY,QAAQ;AAAA,IACjC,wBAAwBA,EAAY,QAAQ;AAAA,IAC5C,2BAA2BA,EAAY,QAAQ;AAAA,IAC/C,6BAA6BA,EAAY,QAAQ;AAAA,IACjD,gBAAgBA,EAAY,QAAQ;AAAA,IACpC,MAAMA,EAAY,QAAQ;AAAA,IAC1B,MAAMA,EAAY,QAAQ;AAAA,IAC1B,MAAMA,EAAY,QAAQ;AAAA,IAC1B,cAAcA,EAAY,QAAQ;AAAA,IAClC,kBAAkBA,EAAY,QAAQ;AAAA,IACtC,YAAYA,EAAY,QAAQ;AAAA,IAChC,YAAYA,EAAY,QAAQ;AAAA,EACjC,GACDyD,EAAM,eAAe;AAAA,IACnB,QAAQ;AAAA,IACR,iBAAiBL;AAAA,IACjB,mBAAmB/B;AAAA,IACnB,MAAM;AAAA,IACN,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,2BAA2B;AAAA,IAC3B,6BAA6B;AAAA,IAC7B,gBAAgB,WAA0B;AACxC,aAAO,SAAS;AAAA,IACpB;AAAA,EACC,GACDoC,EAAM,gBAAgB;AAAA,IACpB,SAAS;AAAA,MACP,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,iBAAiB;AAAA,IAClB;AAAA,IACD,SAAS;AAAA,MACP,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,yBAAyB;AAAA,MACzB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,SAAS;AAAA,IACb;AAAA,EACC,OAGGN,EAAuB,UAAUM,CAAK,GAE1CX,GAAA,UAAkBW;;;;;AC5QlB,WAAO,eAAwBhK,GAAA,cAAc;AAAA,MAC3C,OAAO;AAAA,IACT,CAAC;AAED,QAAI0K,IAAS7zB,GAA6B,GAEtC8zB,IAAUnJ,EAAuBkJ,CAAM;AAE3C,aAASlJ,EAAuBC,GAAK;AAAE,aAAOA,KAAOA,EAAI,aAAaA,IAAM,EAAE,SAASA;IAAM;AAE7F,IAAAzB,EAAkB,UAAA2K,EAAQ,SAC1B/mB,EAAiB,UAAAoc,EAAQ;AAAA;;;ACblB,SAAS4K,KAAY;AAC1B,SAAO,OAAO,UAAW;AAC3B;;;;;;;;;;;;ACYO,SAASC,GAAW;AAAA,EACzB,WAAAxnB;AAAA,EACA,YAAAynB;AAAA,EACA,MAAAC;AAAA,EACA,MAAAvgB,IAAO;AAAA,EACP,MAAA4J;AAAA,EACA,WAAA4W,IAAY;AACd,GAAiC;AACzB,QAAAC,IAAYtzB,GAAM,OAAuB,IAAI,GAC7CuzB,IAAQ9W,IAAO,SAAY+W,GAAcJ,CAAI,GAC7CK,IAAcC,GAAcJ,GAAWC,CAAK,GAC5CI,IACJR,KAActgB,MAAS,UACnB,EAAE,QAAQsgB,GAAY,OAAOA,EAAW,IACxC,CAAC,GACDS,IAAuCL,IACzC,EAAE,iBAAiB,OAAOA,CAAK,IAAA,IAC/B,CAAC,GACCM,IAAqC,CAAC;AAGxC,EAAAhhB,MAAS,WAAWsgB,IACtBU,EAAc,WAAWV,IAAa,IAC7BtgB,MAAS,WAAW,CAAC0gB,KAASE,EAAY,UAAU,MAE/CI,EAAA,WAAWJ,EAAY,QAAQ;AAG/C,QAAMK,IAAsB5gB;AAAA,IAC1BC,GAAO;AAAA,IACP;AAAA,MACE,CAACA,GAAO,QAAQ,GAAG,CAACogB;AAAA,MACpB,CAACQ,GAAalhB,CAAI,CAAC,GAAG,CAACsgB,KAActgB,MAAS;AAAA,MAC9C,CAACM,GAAO,gBAAgB,CAAC,GAAG,CAAC,EAACzH,KAAA,QAAAA,EAAW,SAAS;AAAA,IACpD;AAAA,IACAA;AAAA,EACF,GAEMsoB,IAAe9gB,GAAGC,GAAO,aAAa,GAAG;AAAA,IAC7C,CAACA,GAAO,GAAG,GAAGogB;AAAA,IACd,CAACpgB,GAAO,QAAQ,GAAG,CAACogB;AAAA,IACpB,CAACpgB,GAAO,SAAS,GAAGkgB;AAAA,EAAA,CACrB,GAEKY,IAAcxX,IAClBxR,gBAAAA,EAAAA,IAACyR,IAAK,EAAA,MAAAD,GAAY,OAAM,QAAQ,CAAA,IAE7BxR,gBAAAA,EAAA,IAAA8K,EAAA,UAAA,EAAA,UAAAqd,EAAK,UAAS;AAIjB,SAAAnoB,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAa,eAAesoB,IAAQ,UAAU,SAAS;AAAA,MACvD,WAAWO;AAAA,MACX,OAAOH;AAAA,MACP,KAAKL;AAAA,MACL,kBAAgBD;AAAA,MAEf,UACCE,IAAAtoB,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW+oB;AAAA,UACX,OAAOJ;AAAA,UACP,eAAY;AAAA,QAAA;AAAA,MAAA,IAGd3oB,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW+oB;AAAA,UACX,OAAOH;AAAA,UACP,eAAY;AAAA,UAEX,UAAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAEJ;AAEJ;AAYO,SAAST,GAAc;AAAA,EAC5B,WAAAU;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AACF,GAAwC;AACtC,SAAIJ,KAGAC,KAGAC,KAGAC,KAGGC,KAAW;AACpB;AAmDA,SAASP,GAAalhB,GAA+B;AACnD,UAAQA,GAAM;AAAA,IACZ,KAAK;AACH,aAAOM,GAAO,gBAAgB;AAAA,IAChC,KAAK;AACH,aAAOA,GAAO,iBAAiB;AAAA,IACjC,KAAK;AACH,aAAOA,GAAO,gBAAgB;AAAA,IAChC,KAAK;AAAA,IACL;AACE,aAAOA,GAAO,gBAAgB;AAAA,EAAA;AAEpC;AAGA,SAASugB,GACPJ,GACAC,GACA;AACA,QAAMgB,IAAuB;AAAA,IAC3B,OAAO,CAAChB,KAASD,EAAU,UAAUA,EAAU,QAAQ,cAAc;AAAA,IACrE,QAAQ,CAACC,KAASD,EAAU,UAAUA,EAAU,QAAQ,eAAe;AAAA,EACzE,GAEM,CAACH,GAAYqB,CAAa,IAAIx0B,GAAM,SAASu0B,CAAoB,GAEjEE,IAAe,MAAM;AACzB,IAAAD,EAAcD,CAAoB;AAAA,EACpC;AAEA,SAAAv0B,GAAM,UAAU,MAAM;AAChB,QAACizB,QAID,CAACM;AACI,oBAAA,iBAAiB,UAAUkB,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,EAChE,GACC,CAAClB,CAAK,CAAC,GAEVvzB,GAAM,UAAU,MAAM;AACpB,IAAKuzB,KACUkB,EAAA;AAAA,EACf,GACC,CAAClB,CAAK,CAAC,GACHJ;AACT;AC3Ne,SAASuB,GAAmBC,GAAK;AAC9C,MAAI,MAAM,QAAQA,CAAG,GAAG;AACtB,aAAS7qB,IAAI,GAAG8qB,IAAO,IAAI,MAAMD,EAAI,MAAM,GAAG7qB,IAAI6qB,EAAI,QAAQ7qB;AAC5D,MAAA8qB,EAAK9qB,CAAC,IAAI6qB,EAAI7qB,CAAC;AAGjB,WAAO8qB;AAAA,EACX;AACA;ACRe,SAASC,GAAiBC,GAAM;AAC7C,MAAI,OAAO,YAAY,OAAOA,CAAI,KAAK,OAAO,UAAU,SAAS,KAAKA,CAAI,MAAM,qBAAsB,QAAO,MAAM,KAAKA,CAAI;AAC9H;ACFe,SAASC,KAAqB;AAC3C,QAAM,IAAI,UAAU,iDAAiD;AACvE;ACCe,SAASC,GAAmBL,GAAK;AAC9C,SAAOM,GAAkBN,CAAG,KAAKO,GAAgBP,CAAG,KAAKQ,GAAmB;AAC9E;ACLe,SAAS9gB,KAAW;AACjC,SAAAA,KAAW,OAAO,UAAU,SAAUF,GAAQ;AAC5C,aAASrK,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AACzC,UAAIxF,IAAS,UAAUwF,CAAC;AAExB,eAASxB,KAAOhE;AACd,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQgE,CAAG,MAClD6L,EAAO7L,CAAG,IAAIhE,EAAOgE,CAAG;AAAA,IAGlC;AAEI,WAAO6L;AAAA,EACR,GAEME,GAAS,MAAM,MAAM,SAAS;AACvC;AChBe,SAAS+Y,GAAgBC,GAAUC,GAAa;AAC7D,MAAI,EAAED,aAAoBC;AACxB,UAAM,IAAI,UAAU,mCAAmC;AAE3D;ACJA,SAAS8H,GAAkBjhB,GAAQnQ,GAAO;AACxC,WAAS8F,IAAI,GAAGA,IAAI9F,EAAM,QAAQ8F,KAAK;AACrC,QAAI6O,IAAa3U,EAAM8F,CAAC;AACxB,IAAA6O,EAAW,aAAaA,EAAW,cAAc,IACjDA,EAAW,eAAe,IACtB,WAAWA,MAAYA,EAAW,WAAW,KACjD,OAAO,eAAexE,GAAQwE,EAAW,KAAKA,CAAU;AAAA,EAC5D;AACA;AAEe,SAAS0V,GAAaf,GAAaiB,GAAYC,GAAa;AACzE,SAAID,KAAY6G,GAAkB9H,EAAY,WAAWiB,CAAU,GAE5DjB;AACT;ACde,SAAShZ,GAAuBtM,GAAM;AACnD,MAAIA,MAAS;AACX,UAAM,IAAI,eAAe,2DAA2D;AAGtF,SAAOA;AACT;ACNe,SAASuM,GAAgBnI,GAAG7M,GAAG;AAC5C,SAAAgV,KAAkB,OAAO,kBAAkB,SAAyBnI,GAAG7M,GAAG;AACxE,WAAA6M,EAAE,YAAY7M,GACP6M;AAAA,EACR,GAEMmI,GAAgBnI,GAAG7M,CAAC;AAC7B;ACNe,SAASgwB,GAAU9a,GAAUC,GAAY;AACtD,MAAI,OAAOA,KAAe,cAAcA,MAAe;AACrD,UAAM,IAAI,UAAU,oDAAoD;AAG1E,EAAAD,EAAS,YAAY,OAAO,OAAOC,KAAcA,EAAW,WAAW;AAAA,IACrE,aAAa;AAAA,MACX,OAAOD;AAAA,MACP,UAAU;AAAA,MACV,cAAc;AAAA,IACpB;AAAA,EACA,CAAG,GACGC,KAAYC,GAAeF,GAAUC,CAAU;AACrD;ACdA,SAAS2gB,GAASvL,GAAK;AAAE,SAAI,OAAO,UAAW,cAAc,OAAO,OAAO,YAAa,WAAYuL,KAAW,SAAkBvL,GAAK;AAAE,WAAO,OAAOA;AAAA,EAAM,IAAWuL,KAAW,SAAkBvL,GAAK;AAAE,WAAOA,KAAO,OAAO,UAAW,cAAcA,EAAI,gBAAgB,UAAUA,MAAQ,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAM,GAAWuL,GAASvL,CAAG;AAAE;AAEpV,SAASsE,GAAQtE,GAAK;AACnC,SAAI,OAAO,UAAW,cAAcuL,GAAS,OAAO,QAAQ,MAAM,WAChEjH,KAAU,SAAiBtE,GAAK;AAC9B,WAAOuL,GAASvL,CAAG;AAAA,EACpB,IAEDsE,KAAU,SAAiBtE,GAAK;AAC9B,WAAOA,KAAO,OAAO,UAAW,cAAcA,EAAI,gBAAgB,UAAUA,MAAQ,OAAO,YAAY,WAAWuL,GAASvL,CAAG;AAAA,EAC/H,GAGIsE,GAAQtE,CAAG;AACpB;ACZe,SAASuF,GAA2BrnB,GAAMsnB,GAAM;AAC7D,SAAIA,MAASlB,GAAQkB,CAAI,MAAM,YAAY,OAAOA,KAAS,cAClDA,IAGFgG,GAAsBttB,CAAI;AACnC;ACRe,SAASutB,GAAgBnpB,GAAG;AACzC,SAAAmpB,KAAkB,OAAO,iBAAiB,OAAO,iBAAiB,SAAyBnpB,GAAG;AAC5F,WAAOA,EAAE,aAAa,OAAO,eAAeA,CAAC;AAAA,EAC9C,GACMmpB,GAAgBnpB,CAAC;AAC1B;ACLe,SAASopB,GAAgB1L,GAAKxhB,GAAKpB,GAAO;AACvD,SAAIoB,KAAOwhB,IACT,OAAO,eAAeA,GAAKxhB,GAAK;AAAA,IAC9B,OAAOpB;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EAChB,CAAK,IAED4iB,EAAIxhB,CAAG,IAAIpB,GAGN4iB;AACT;;;;;ACOA,MAAIjR,IAAY,SAASC,GAAWzX,GAAQ3B,GAAGE,GAAGH,GAAGI,GAAGC,GAAGb,GAAG;AAC5D,QAAI,QAAQ,IAAI,aAAa,gBACvBoC,MAAW;AACb,YAAM,IAAI,MAAM,8CAA8C;AAIlE,QAAI,CAACyX,GAAW;AACd,UAAI1X;AACJ,UAAIC,MAAW;AACb,QAAAD,IAAQ,IAAI;AAAA,UACV;AAAA,QAED;AAAA,WACI;AACL,YAAIG,IAAO,CAAC7B,GAAGE,GAAGH,GAAGI,GAAGC,GAAGb,CAAC,GACxB6rB,IAAW;AACf,QAAA1pB,IAAQ,IAAI;AAAA,UACVC,EAAO,QAAQ,OAAO,WAAW;AAAE,mBAAOE,EAAKupB,GAAU;AAAA,UAAI,CAAA;AAAA,QAC9D,GACD1pB,EAAM,OAAO;AAAA,MACnB;AAEI,YAAAA,EAAM,cAAc,GACdA;AAAA,IACV;AAAA,EACC;AAED,SAAAq0B,KAAiB5c;;;;AChDF,SAAS6c,GAAgBf,GAAK;AAC3C,MAAI,MAAM,QAAQA,CAAG,EAAG,QAAOA;AACjC;ACFe,SAASgB,GAAsBhB,GAAK7qB,GAAG;AACpD,MAAI8rB,IAAO,CAAE,GACTC,IAAK,IACL9nB,IAAK,IACL+nB,IAAK;AAET,MAAI;AACF,aAASC,IAAKpB,EAAI,OAAO,QAAQ,EAAG,GAAEqB,GAAI,EAAEH,KAAMG,IAAKD,EAAG,KAAI,GAAI,UAChEH,EAAK,KAAKI,EAAG,KAAK,GAEd,EAAAlsB,KAAK8rB,EAAK,WAAW9rB,KAH8C+rB,IAAK;AAG5E;AAAA,EAEH,SAAQhvB,GAAK;AACZ,IAAAkH,IAAK,IACL+nB,IAAKjvB;AAAA,EACT,UAAY;AACR,QAAI;AACF,MAAI,CAACgvB,KAAME,EAAG,UAAa,QAAMA,EAAG,OAAW;AAAA,IACrD,UAAc;AACR,UAAIhoB,EAAI,OAAM+nB;AAAA,IACpB;AAAA,EACA;AAEE,SAAOF;AACT;ACxBe,SAASK,KAAmB;AACzC,QAAM,IAAI,UAAU,sDAAsD;AAC5E;ACCe,SAASC,GAAevB,GAAK7qB,GAAG;AAC7C,SAAOqsB,GAAexB,CAAG,KAAKyB,GAAqBzB,GAAK7qB,CAAC,KAAKusB,GAAiB;AACjF;ACLe,SAASpiB,GAA8B3P,GAAQ4P,GAAU;AACtE,MAAI5P,KAAU,KAAM,QAAO,CAAE;AAC7B,MAAI6P,IAAS,CAAE,GACXC,IAAa,OAAO,KAAK9P,CAAM,GAC/BgE,GAAK;AAET,OAAK,IAAI,GAAG,IAAI8L,EAAW,QAAQ;AAEjC,IADA9L,IAAM8L,EAAW,CAAC,GACd,EAAAF,EAAS,QAAQ5L,CAAG,KAAK,OAC7B6L,EAAO7L,CAAG,IAAIhE,EAAOgE,CAAG;AAG1B,SAAO6L;AACT;ACZe,SAASmiB,GAAyBhyB,GAAQ4P,GAAU;AACjE,MAAI5P,KAAU,KAAM,QAAO,CAAE;AAC7B,MAAI6P,IAASoiB,GAA6BjyB,GAAQ4P,CAAQ,GACtD5L,GAAKwB;AAET,MAAI,OAAO,uBAAuB;AAChC,QAAI0sB,IAAmB,OAAO,sBAAsBlyB,CAAM;AAE1D,SAAKwF,IAAI,GAAGA,IAAI0sB,EAAiB,QAAQ1sB;AAEvC,MADAxB,IAAMkuB,EAAiB1sB,CAAC,GACpB,EAAAoK,EAAS,QAAQ5L,CAAG,KAAK,MACxB,OAAO,UAAU,qBAAqB,KAAKhE,GAAQgE,CAAG,MAC3D6L,EAAO7L,CAAG,IAAIhE,EAAOgE,CAAG;AAAA,EAE9B;AAEE,SAAO6L;AACT;AClBA,SAASia,GAAQhiB,GAAG;AAClB;AAEA,SAAOgiB,KAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAUhiB,GAAG;AAChG,WAAO,OAAOA;AAAA,EACf,IAAG,SAAUA,GAAG;AACf,WAAOA,KAAmB,OAAO,UAArB,cAA+BA,EAAE,gBAAgB,UAAUA,MAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EACtH,GAAKgiB,GAAQhiB,CAAC;AACd;ACPA,SAASqqB,GAAYzqB,GAAGG,GAAG;AACzB,MAAgBiiB,GAAQpiB,CAAC,KAArB,YAA0B,CAACA,EAAG,QAAOA;AACzC,MAAIlM,IAAIkM,EAAE,OAAO,WAAW;AAC5B,MAAelM,MAAX,QAAc;AAChB,QAAIgK,IAAIhK,EAAE,KAAKkM,GAAGG,CAAc;AAChC,QAAgBiiB,GAAQtkB,CAAC,KAArB,SAAwB,QAAOA;AACnC,UAAM,IAAI,UAAU,8CAA8C;AAAA,EACtE;AACE,UAAqBqC,MAAb,WAAiB,SAAS,QAAQH,CAAC;AAC7C;ACRA,SAAS0qB,GAAc1qB,GAAG;AACxB,MAAIlC,IAAI2sB,GAAYzqB,GAAG,QAAQ;AAC/B,SAAmBoiB,GAAQtkB,CAAC,KAArB,WAAyBA,IAAIA,IAAI;AAC1C;ACJA,SAAS0rB,GAAgB,GAAGrpB,GAAGH,GAAG;AAChC,UAAQG,IAAIuqB,GAAcvqB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAGA,GAAG;AAAA,IAC/D,OAAOH;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACX,CAAA,IAAI,EAAEG,CAAC,IAAIH,GAAG;AACjB;ACRA,SAAS2qB,GAAkBxqB,GAAGzM,GAAG;AAC/B,GAASA,KAAR,QAAaA,IAAIyM,EAAE,YAAYzM,IAAIyM,EAAE;AACtC,WAASrM,IAAI,GAAGR,IAAI,MAAMI,CAAC,GAAGI,IAAIJ,GAAGI,IAAK,CAAAR,EAAEQ,CAAC,IAAIqM,EAAErM,CAAC;AACpD,SAAOR;AACT;ACHA,SAASo1B,GAAmBvoB,GAAG;AAC7B,MAAI,MAAM,QAAQA,CAAC,EAAG,QAAOyqB,GAAiBzqB,CAAC;AACjD;ACHA,SAAS0oB,GAAiB1oB,GAAG;AAC3B,MAAmB,OAAO,SAAtB,OAAwCA,EAAE,OAAO,QAAQ,KAAzB,QAAsCA,EAAE,YAAY,KAAtB,KAAyB,QAAO,MAAM,KAAKA,CAAC;AAChH;ACDA,SAAS0qB,GAA4B1qB,GAAGzM,GAAG;AACzC,MAAIyM,GAAG;AACL,QAAgB,OAAOA,KAAnB,SAAsB,QAAOyqB,GAAiBzqB,GAAGzM,CAAC;AACtD,QAAIsM,IAAI,CAAE,EAAC,SAAS,KAAKG,CAAC,EAAE,MAAM,GAAG,EAAE;AACvC,WAAoBH,MAAb,YAAkBG,EAAE,gBAAgBH,IAAIG,EAAE,YAAY,OAAiBH,MAAV,SAAyBA,MAAV,QAAc,MAAM,KAAKG,CAAC,IAAoBH,MAAhB,eAAqB,2CAA2C,KAAKA,CAAC,IAAI4qB,GAAiBzqB,GAAGzM,CAAC,IAAI;AAAA,EACxN;AACA;ACPA,SAASq1B,KAAqB;AAC5B,QAAM,IAAI,UAAU;AAAA,mFAAsI;AAC5J;ACEA,SAASC,GAAmB7oB,GAAG;AAC7B,SAAO8oB,GAAkB9oB,CAAC,KAAK+oB,GAAgB/oB,CAAC,KAAK2qB,GAA2B3qB,CAAC,KAAKgpB,GAAmB;AAC3G;ACLO,IAAI3qB,KAAO,SAAcsf,GAAK;AACnC,SAAOA,MAAQ,OAAOA,CAAG,IAAI,OAAO,KAAKA,CAAG,IAAI,CAAE;AACpD,GACWvjB,KAAS,SAAgBujB,GAAK;AACvC,SAAOA,MAAQ,OAAOA,CAAG,IAAI,OAAO,OAAOA,CAAG,IAAI,CAAE;AACtD;AAEA,SAASiN,GAAU5iB,GAAQ7P,GAAQ;AACjC,MAAI0yB,IAAS,OAAO,OAAO,CAAA,GAAI7iB,CAAM;AAErC,SAAI8iB,GAAc9iB,CAAM,KAAK8iB,GAAc3yB,CAAM,KAC/CkG,GAAKlG,CAAM,EAAE,QAAQ,SAAUgE,GAAK;AAClC,IAAI2uB,GAAc3yB,EAAOgE,CAAG,CAAC,IACrBA,KAAO6L,IAA2E6iB,EAAO1uB,CAAG,IAAIyuB,GAAU5iB,EAAO7L,CAAG,GAAGhE,EAAOgE,CAAG,CAAC,IAAlH,OAAO,OAAO0uB,GAAQxB,GAAgB,IAAIltB,GAAKhE,EAAOgE,CAAG,CAAC,CAAC,IAEjF,OAAO,OAAO0uB,GAAQxB,GAAgB,CAAE,GAAEltB,GAAKhE,EAAOgE,CAAG,CAAC,CAAC;AAAA,EAEnE,CAAK,GAGI0uB;AACT;AAEO,IAAIE,KAAQ,SAAe/iB,GAAQ;AACxC,WAASqe,IAAO,UAAU,QAAQ2E,IAAU,IAAI,MAAM3E,IAAO,IAAIA,IAAO,IAAI,CAAC,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AACrG,IAAA0E,EAAQ1E,IAAO,CAAC,IAAI,UAAUA,CAAI;AAGpC,SAAO0E,EAAQ,OAAO,SAAUnrB,GAAGxG,GAAG;AACpC,WAAOuxB,GAAU/qB,GAAGxG,CAAC;AAAA,EACtB,GAAE2O,CAAM;AACX,GAIWijB,KAAO,SAActN,GAAKtf,GAAM;AACzC,MAAI6sB,IAAQ,OAAO,OAAO,CAAA,GAAIvN,CAAG;AAEjC,MAAItf;AACF,aAASV,IAAI,GAAGA,IAAIU,EAAK,QAAQV;AAC/B,aAAOutB,EAAM7sB,EAAKV,CAAC,CAAC;AAIxB,SAAOutB;AACT,GACWJ,KAAgB,SAAuBnN,GAAK;AACrD,SAAOA,MAAQ,OAAOA,CAAG,KAAK,EAAEA,aAAe,SAAS,CAAC,MAAM,QAAQA,CAAG;AAC5E,GACWwN,KAAU,SAAiB3C,GAAK;AACzC,UAAQA,KAAO,IAAI,OAAO,OAAO;AACnC,GCpDW4C,KAAa,SAAoBjvB,GAAK;AAC/C,SAAOA,EAAI,CAAC,MAAM;AACpB,GACWqO,KAAY,SAAmBrO,GAAK;AAC7C,SAAO,CAACivB,GAAWjvB,CAAG;AACxB,GCDIkvB,KAAW,SAAkBlvB,GAAK;AACpC,SAAOA,EAAI,QAAQ,UAAU,SAAUjJ,GAAGI,GAAG;AAC3C,WAAOA,EAAE,YAAa;AAAA,EAC1B,CAAG;AACH,GAEWg4B,KAAmB,SAA0B/O,GAAO;AAK7D,WAJIgP,IAA4B,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAE,GAClGC,IAAYntB,GAAKke,CAAK,GACtBza,IAAS,CAAE,GAEN,IAAI,GAAG7O,IAAIu4B,EAAU,QAAQ,IAAIv4B,GAAG,KAAK,GAAG;AACnD,QAAIkJ,IAAMqvB,EAAU,CAAC,GACjBC,IAAW,OAAO,UAAU,SAAS,KAAKlP,EAAMpgB,CAAG,CAAC,MAAM;AAAA,IAC9DA,EAAI,CAAC,MAAM;AAAA,IACXA,EAAI,CAAC,MAAM;AAAA,IACXovB,EAA0B,QAAQpvB,CAAG,KAAK;AAE1C,IAAIsvB,MACF3pB,EAAO3F,CAAG,IAAIogB,EAAMpgB,CAAG;AAAA,EAE7B;AAEE,SAAO2F;AACT,GACW4pB,KAAmB,SAA0BnP,GAAOoP,GAAY;AAKzE,WAJIC,IAAsBD,EAAW,IAAIN,EAAQ,GAC7CG,IAAYntB,GAAKke,CAAK,GACtBza,IAAS,CAAE,GAENnE,IAAI,GAAG1K,IAAIu4B,EAAU,QAAQ7tB,IAAI1K,GAAG0K,KAAK,GAAG;AACnD,QAAIxB,IAAMqvB,EAAU7tB,CAAC;AAErB,KAAIguB,EAAW,QAAQxvB,CAAG,KAAK,KAAKyvB,EAAoB,QAAQP,GAASlvB,CAAG,CAAC,KAAK,OAChF2F,EAAO3F,CAAG,IAAIogB,EAAMpgB,CAAG;AAAA,EAE7B;AAEE,SAAO2F;AACT,GAGW+pB,KAA+B,SAASA,EAA6BtP,GAAOuP,GAAoB;AAMzG,WAJIhqB,IAASipB,GAAM,MAAM,QAAQ,CAAC,IAAIE,GAAK1O,GAAOuP,CAAkB,CAAC,EAAE,OAAOjD,GAAmBzuB,GAAOsxB,GAAiBnP,GAAOuP,CAAkB,CAAC,CAAC,CAAC,CAAC,GAElJC,IAAe1tB,GAAKyD,CAAM,EAAE,OAAOspB,EAAU,GAExC,IAAI,GAAGn4B,IAAI84B,EAAa,QAAQ,IAAI94B,GAAG,KAAK,GAAG;AACtD,QAAIkJ,IAAM4vB,EAAa,CAAC,GACpBC,IAAYH,EAA6B/pB,EAAO3F,CAAG,GAAG2vB,CAAkB;AAE5E,IAAIA,EAAmB,QAAQ3vB,CAAG,KAAK,KAErC,OAAO2F,EAAO3F,CAAG,GACjB2F,IAASipB,GAAM,IAAIjpB,GAAQkqB,CAAS,KAGpClqB,EAAO3F,CAAG,IAAI6vB;AAAA,EAEpB;AAEE,SAAOlqB;AACT;ACjEA,SAASmqB,GAAQnvB,GAAQovB,GAAgB;AAAE,MAAI7tB,IAAO,OAAO,KAAKvB,CAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIgb,IAAU,OAAO,sBAAsBhb,CAAM;AAAG,IAAIovB,MAAkBpU,IAAUA,EAAQ,OAAO,SAAUqU,GAAK;AAAE,aAAO,OAAO,yBAAyBrvB,GAAQqvB,CAAG,EAAE;AAAA,IAAa,CAAA,IAAK9tB,EAAK,KAAK,MAAMA,GAAMyZ,CAAO;AAAA;AAAK,SAAOzZ;AAAK;AAEvV,SAAS+tB,GAAcpkB,GAAQ;AAAE,WAASrK,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIxF,IAAS,UAAUwF,CAAC,KAAK,OAAO,UAAUA,CAAC,IAAI,CAAE;AAAE,IAAIA,IAAI,IAAKsuB,GAAQ,OAAO9zB,CAAM,GAAG,EAAI,EAAE,QAAQ,SAAUgE,GAAK;AAAE,MAAAktB,GAAgBrhB,GAAQ7L,GAAKhE,EAAOgE,CAAG,CAAC;AAAA,IAAE,CAAE,IAAc,OAAO,4BAA6B,OAAO,iBAAiB6L,GAAQ,OAAO,0BAA0B7P,CAAM,CAAC,IAAY8zB,GAAQ,OAAO9zB,CAAM,CAAC,EAAE,QAAQ,SAAUgE,GAAK;AAAE,aAAO,eAAe6L,GAAQ7L,GAAK,OAAO,yBAAyBhE,GAAQgE,CAAG,CAAC;AAAA,IAAI,CAAA;AAAA,EAAI;AAAG,SAAO6L;AAAO;AAIphB,IAAIqkB,KAA8B,CAAC,eAAe,GAE9CC,KAAwB,SAA+B9e,GAAM;AAC/D,MAAI+O,IAAQ/O,EAAK,OACbjO,IAAYiO,EAAK;AACrB,SAAO4e,GAAcA,GAAc,CAAE,GAAE7P,IAAQ;AAAA,IAC7C,OAAO+O,GAAiB/O,GAAO8P,EAA2B;AAAA,EAC9D,IAAM,CAAA,CAAE,GAAG9sB,IAAY;AAAA,IACnB,WAAWA;AAAA,EACZ,IAAG,EAAE;AACR,GChBWgtB,KAAqC,gBAAAC,GAAcF,EAAqB;AACpEC,GAAsB;ACDrC,IAAIE,KAAkB,SAAyBC,GAAQ;AACrD,MAAKA,GAEE;AAAA,QAAI,OAAOA,KAAW;AAC3B,aAAO,CAACA,CAAM;AACT,QAAI,CAAC,MAAM,QAAQA,CAAM,GAAG;AACjC,UAAIC,IAAYD;AAEhB,aAAOruB,GAAKquB,CAAM,EAAE,OAAO,SAAUvI,GAAKhoB,GAAK;AAC7C,eAAOgoB,EAAI,OAAOwI,EAAUxwB,CAAG,IAAI,CAACA,CAAG,IAAI,EAAE;AAAA,MAC9C,GAAE,EAAE;AAAA,IACT;AAAA,QATI,QAAO,CAAE;AAWX,SAAOuwB;AACT,GCfIE,KAAQ,CAAE,GAEVC,KAAU,SAAiBC,GAAU;AACvC,SAAO,SAAUJ,GAAQK,GAAc;AACrC,QAAIze,IAAWye,KAAgBH;AAC/B,IAAAE,EAAS,UAAUA,EAAS,WAAW,oBAAI,QAAS;AACpD,QAAIE;AAEJ,IAAKF,EAAS,QAAQ,IAAIxe,CAAQ,IAIhC0e,IAAWF,EAAS,QAAQ,IAAIxe,CAAQ,KAHxC0e,IAAW,CAAE,GACbF,EAAS,QAAQ,IAAIxe,GAAU0e,CAAQ;AAKzC,QAAIC,IAAaR,GAAgBC,CAAM,EAAE,KAAK,GAAG;AACjD,WAAOO,KAAcD,IAAWA,EAASC,CAAU,IAAID,EAASC,CAAU,IAAIH,EAASJ,KAAU,CAAA,GAAIK,CAAY;AAAA,EAClH;AACH;AChBA,SAASd,GAAQnvB,GAAQovB,GAAgB;AAAE,MAAI7tB,IAAO,OAAO,KAAKvB,CAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIgb,IAAU,OAAO,sBAAsBhb,CAAM;AAAG,IAAIovB,MAAkBpU,IAAUA,EAAQ,OAAO,SAAUqU,GAAK;AAAE,aAAO,OAAO,yBAAyBrvB,GAAQqvB,CAAG,EAAE;AAAA,IAAa,CAAA,IAAK9tB,EAAK,KAAK,MAAMA,GAAMyZ,CAAO;AAAA;AAAK,SAAOzZ;AAAK;AAEvV,SAAS+tB,GAAcpkB,GAAQ;AAAE,WAASrK,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIxF,IAAS,UAAUwF,CAAC,KAAK,OAAO,UAAUA,CAAC,IAAI,CAAE;AAAE,IAAIA,IAAI,IAAKsuB,GAAQ,OAAO9zB,CAAM,GAAG,EAAI,EAAE,QAAQ,SAAUgE,GAAK;AAAE,MAAAktB,GAAgBrhB,GAAQ7L,GAAKhE,EAAOgE,CAAG,CAAC;AAAA,IAAE,CAAE,IAAc,OAAO,4BAA6B,OAAO,iBAAiB6L,GAAQ,OAAO,0BAA0B7P,CAAM,CAAC,IAAY8zB,GAAQ,OAAO9zB,CAAM,CAAC,EAAE,QAAQ,SAAUgE,GAAK;AAAE,aAAO,eAAe6L,GAAQ7L,GAAK,OAAO,yBAAyBhE,GAAQgE,CAAG,CAAC;AAAA,IAAI,CAAA;AAAA,EAAI;AAAG,SAAO6L;AAAO;AAUphB,IAAIklB,KAAqB,SAA4B1tB,GAAY;AAG/D,MAAI2tB,IAAW3tB,KAAcnB,GAAKmB,CAAU,EAAE,CAAC;AAC/C,SAAO2tB,KAAYA,EAAS,MAAM,IAAI,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;AAC1D,GAEIC,KAAmB,SAA0B7tB,GAAW8tB,GAAatB,GAAc;AAErF,MAAKxsB,GAKL;AAAA,QAAI+tB,IAAiB/tB,EAAU,MAAM,GAAG,EAAE,CAAC,GACvCguB,IAAoB,CAAA,EAAG,OAAO1E,GAAmBwE,EAAY,WAAW,IAAItB,EAAa,IAAI,SAAU5vB,GAAK;AAC9G,aAAO,GAAG,OAAOmxB,GAAgB,IAAI,EAAE,OAAOnxB,EAAI,UAAU,CAAC,CAAC;AAAA,IAClE,CAAG,IAAI,CAAE,CAAA,GAAG0sB,GAAmBwE,EAAY,IAAI,SAAUlxB,GAAK;AAC1D,aAAO,GAAG,OAAOmxB,GAAgB,IAAI,EAAE,OAAOnxB,CAAG;AAAA,IAClD,CAAA,CAAC,CAAC;AAEH,WAAOkxB,EAAY,WAAW,IAAI,CAAC9tB,CAAS,EAAE,OAAOspB,GAAmB0E,CAAiB,CAAC,IAAIA;AAAA;AAChG;AAEA,SAASC,GAAehgB,GAAM;AAC5B,MAAI+O,IAAQ/O,EAAK,OACbjO,IAAYiO,EAAK,WACjBhO,IAAagO,EAAK,YAClBigB,IAAiB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAInB,IACrFoB,IAAgBnuB,KAAa2tB,GAAmB1tB,CAAU,MAAM+c,KAAU,OAA2B,SAASA,EAAM,YACpHuQ,IAAW,OAAOvQ,KAAU,aAAaA,IAAQsQ,GAAQ,SAAUH,GAAQK,GAAc;AAC3F,QAAIY,IAAelB,GAAgBC,CAAM;AACzC,IAAAhgB,GAAU,MAAM,QAAQihB,CAAY,GAAG,8GAAmH,GAC1JjhB,GAAU,CAACqgB,KAAgBjC,GAAciC,CAAY,GAAG,mDAAmD;AAC3G,QAAIhB,IAAe4B,EAAa,OAAOvC,EAAU,GAC7CiC,IAAcM,EAAa,OAAOnjB,EAAS,GAC3CojB,IAAuBP,EAAY,SAAS,IAAI,SAAUQ,GAAW;AACvE,aAAOzzB,GAAOsxB,GAAiBmC,GAAWR,CAAW,CAAC;AAAA,IACvD,IAAG,SAAUQ,GAAW;AACvB,aAAO,CAACA,CAAS;AAAA,IAClB,GAEGC,IAAwB,WAAiC;AAC3D,UAAID,IAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAE;AACtF,aAAOD,EAAqB/B,GAA6BgC,GAAW9B,CAAY,CAAC;AAAA,IAClF,GAEGwB,IAAoBH,GAAiBM,GAAeL,GAAatB,CAAY;AACjF,WAAOyB,GAAepB,GAAcA,GAAcA,GAAc,KAAK7P,KAASwQ,MAAiB;AAAA,MAC7F,OAAOhC,GAAM,MAAM,QAAQ,CAAC,CAAA,CAAE,EAAE,OAAOlC,GAAmBiF,EAAsBf,CAAY,CAAC,GAAGlE,GAAmBiF,EAAsBvR,CAAK,CAAC,CAAC,CAAC;AAAA,IAClJ,CAAA,GAAGgR,KAAqB;AAAA,MACvB,WAAWA,EAAkB,KAAK,GAAG;AAAA,IACtC,CAAA,GAAG/tB,KAAc;AAAA,MAChB,YAAYA;AAAA,IACb,CAAA,GAAGiuB,CAAc;AAAA,EACtB,CAAG,GAEGM,IAAa3B,GAAc,CAAA,GAAI,OAAO7P,KAAU,aAAaA,IAAQ;AAAA,IACvE,OAAOA;AAAA,EACX,CAAG,GAEGyR,IAAiBnF,GAAmB,IAAI,IAAI,CAAE,EAAC,OAAOA,GAAmBkF,EAAW,YAAYA,EAAW,UAAU,MAAM,GAAG,IAAI,CAAA,CAAE,GAAGlF,GAAmB6E,IAAgBA,EAAc,MAAM,GAAG,IAAI,CAAE,CAAA,CAAC,CAAC,CAAC,GAE1MO,IAAmBzuB,IAAa2rB,GAAQ6C,EAAe,IAAI,SAAUE,GAAiB;AACxF,WAAO1uB,EAAW0uB,CAAe;AAAA,EAClC,CAAA,CAAC,IAAIF,GACFG,IAAiBV,EAAerB,GAAcA,GAAc,IAAI2B,CAAU,GAAGE,EAAiB,SAAS,IAAI;AAAA,IAC7G,WAAWA,EAAiB,KAAK,GAAG;AAAA,EACxC,IAAM,CAAA,CAAE,CAAC;AAEP,gBAAO,OAAOnB,GAAUqB,CAAc,GAC/BrB;AACT;ACrFA,SAASb,GAAQnvB,GAAQovB,GAAgB;AAAE,MAAI7tB,IAAO,OAAO,KAAKvB,CAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIgb,IAAU,OAAO,sBAAsBhb,CAAM;AAAG,IAAIovB,MAAkBpU,IAAUA,EAAQ,OAAO,SAAUqU,GAAK;AAAE,aAAO,OAAO,yBAAyBrvB,GAAQqvB,CAAG,EAAE;AAAA,IAAa,CAAA,IAAK9tB,EAAK,KAAK,MAAMA,GAAMyZ,CAAO;AAAA;AAAK,SAAOzZ;AAAK;AAEvV,SAAS+tB,GAAcpkB,GAAQ;AAAE,WAASrK,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIxF,IAAS,UAAUwF,CAAC,KAAK,OAAO,UAAUA,CAAC,IAAI,CAAE;AAAE,IAAIA,IAAI,IAAKsuB,GAAQ,OAAO9zB,CAAM,GAAG,EAAI,EAAE,QAAQ,SAAUgE,GAAK;AAAE,MAAAktB,GAAgBrhB,GAAQ7L,GAAKhE,EAAOgE,CAAG,CAAC;AAAA,IAAE,CAAE,IAAc,OAAO,4BAA6B,OAAO,iBAAiB6L,GAAQ,OAAO,0BAA0B7P,CAAM,CAAC,IAAY8zB,GAAQ,OAAO9zB,CAAM,CAAC,EAAE,QAAQ,SAAUgE,GAAK;AAAE,aAAO,eAAe6L,GAAQ7L,GAAK,OAAO,yBAAyBhE,GAAQgE,CAAG,CAAC;AAAA,IAAI,CAAA;AAAA,EAAI;AAAG,SAAO6L;AAAO;AAEphB,IAAIomB,KAAS,WAAkB;AAC7B,WAAS/H,IAAO,UAAU,QAAQjxB,IAAO,IAAI,MAAMixB,CAAI,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AAC/E,IAAAlxB,EAAKkxB,CAAI,IAAI,UAAUA,CAAI;AAG7B,SAAOlxB,EAAK,OAAO,SAAU0M,GAAQwE,GAAK;AACxC,WAAO8lB,GAAcA,GAAcA,GAAc,CAAE,GAAEtqB,CAAM,GAAG,OAAOwE,KAAQ,aAAaA,IAAM,CAAE,CAAA,GAAG,CAAA,GAAI;AAAA,MACvG,OAAO8lB,GAAcA,GAAc,CAAA,GAAItqB,EAAO,KAAK,GAAG,OAAOwE,KAAQ,aAAaA,EAAI,QAAQA,CAAG;AAAA,IACvG,CAAK;AAAA,EACF,GAAE,EAAE;AACP,GCZI+nB,KAAY,SAAmBtB,GAAcvf,GAAM8gB,GAAW;AAChE,MAAI/R,IAAQ/O,EAAK,OACbjO,IAAYiO,EAAK,WACjBhO,IAAagO,EAAK,YAClBigB,IAAiBc,GAAWhC,EAAqB,GACjDO,IAAW0B,GAAQ,WAAY;AACjC,WAAOhB,GAAe;AAAA,MACpB,OAAOjR;AAAA,MACP,WAAWhd;AAAA,MACX,YAAYC;AAAA,IACb,GAAEiuB,CAAc;AAAA,EAClB,GAAE,CAAClR,GAAOhd,GAAWC,GAAYiuB,CAAc,CAAC;AACjD,SAAOX,EAASwB,GAAWvB,CAAY;AACzC;;;;ACRA,MAAIhV,IAAuB;AAE3BC,SAAAA,KAAiBD;;;;wBCXjBxd,KAAiB,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;;;;;;ACSnE,MAAIjF,IAAe,WAAW;AAAA,EAAE;AAEhC,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAIyiB,IAA4DhlB,gBAAAA,GAAA,GAC5D+G,IAAqB,CAAE,GACvBS,IAA0B2E,gBAAAA,GAAA;AAE9B,IAAA5J,IAAe,SAAS2iB,GAAM;AAC5B,UAAIrL,IAAU,cAAcqL;AAC5B,MAAI,OAAO,UAAY,OACrB,QAAQ,MAAMrL,CAAO;AAEvB,UAAI;AAIF,cAAM,IAAI,MAAMA,CAAO;AAAA,MACxB,QAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACH;AAaA,WAAS1S,EAAeC,GAAWC,GAAQC,GAAUC,GAAe4d,GAAU;AAC5E,QAAI,QAAQ,IAAI,aAAa;AAC3B,eAAS1d,KAAgBL;AACvB,YAAII,EAAIJ,GAAWK,CAAY,GAAG;AAChC,cAAIvF;AAIJ,cAAI;AAGF,gBAAI,OAAOkF,EAAUK,CAAY,KAAM,YAAY;AACjD,kBAAIE,IAAM;AAAA,iBACPJ,KAAiB,iBAAiB,OAAOD,IAAW,YAAYG,IAAe,+FACC,OAAOL,EAAUK,CAAY,IAAI;AAAA,cAEnH;AACD,oBAAAE,EAAI,OAAO,uBACLA;AAAA,YAClB;AACU,YAAAzF,IAAQkF,EAAUK,CAAY,EAAEJ,GAAQI,GAAcF,GAAeD,GAAU,MAAM0d,CAAoB;AAAA,UAC1G,SAAQpd,GAAI;AACX,YAAA1F,IAAQ0F;AAAA,UAClB;AAWQ,cAVI1F,KAAS,EAAEA,aAAiB,UAC9BK;AAAA,aACGgF,KAAiB,iBAAiB,6BACnCD,IAAW,OAAOG,IAAe,6FAC6B,OAAOvF,IAAQ;AAAA,UAI9E,GAECA,aAAiB,SAAS,EAAEA,EAAM,WAAW6E,IAAqB;AAGpE,YAAAA,EAAmB7E,EAAM,OAAO,IAAI;AAEpC,gBAAIQ,IAAQyiB,IAAWA,EAAQ,IAAK;AAEpC,YAAA5iB;AAAA,cACE,YAAY+E,IAAW,YAAYpF,EAAM,WAAWQ,KAAwB;AAAA,YAC7E;AAAA,UACX;AAAA,QACA;AAAA;AAAA,EAGA;AAOA,SAAAyE,EAAe,oBAAoB,WAAW;AAC5C,IAAI,QAAQ,IAAI,aAAa,iBAC3BJ,IAAqB,CAAE;AAAA,EAE3B,GAEAqe,KAAiBje;;;;;;AC7FjB,MAAIke,IAAUrlB,GAAmB,GAC7BmE,IAASgI,GAAwB,GAEjC6Y,IAA4DjT,gBAAAA,GAAA,GAC5DvK,IAA0ByK,gBAAAA,GAAA,GAC1B9K,IAA4CgL,gBAAAA,GAAA,GAE5C5P,IAAe,WAAW;AAAA,EAAE;AAEhC,EAAI,QAAQ,IAAI,aAAa,iBAC3BA,IAAe,SAAS2iB,GAAM;AAC5B,QAAIrL,IAAU,cAAcqL;AAC5B,IAAI,OAAO,UAAY,OACrB,QAAQ,MAAMrL,CAAO;AAEvB,QAAI;AAIF,YAAM,IAAI,MAAMA,CAAO;AAAA,IACxB,QAAW;AAAA,IAAA;AAAA,EACb;AAGH,WAASyL,IAA+B;AACtC,WAAO;AAAA,EACT;AAEAC,SAAAA,KAAiB,SAASzb,GAAgB0b,GAAqB;AAE7D,QAAIC,IAAkB,OAAO,UAAW,cAAc,OAAO,UACzD5jB,IAAuB;AAgB3B,aAASC,EAAcC,GAAe;AACpC,UAAI+I,IAAa/I,MAAkB0jB,KAAmB1jB,EAAc0jB,CAAe,KAAK1jB,EAAcF,CAAoB;AAC1H,UAAI,OAAOiJ,KAAe;AACxB,eAAOA;AAAA,IAEb;AAiDE,QAAI4a,IAAY,iBAIZC,IAAiB;AAAA,MACnB,OAAOC,EAA2B,OAAO;AAAA,MACzC,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,MAAMA,EAA2B,SAAS;AAAA,MAC1C,MAAMA,EAA2B,UAAU;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAC3C,QAAQA,EAA2B,QAAQ;AAAA,MAE3C,KAAKC,EAAsB;AAAA,MAC3B,SAASC;AAAA,MACT,SAASC,EAA0B;AAAA,MACnC,aAAaC,EAA8B;AAAA,MAC3C,YAAYC;AAAA,MACZ,MAAMC,EAAmB;AAAA,MACzB,UAAUC;AAAA,MACV,OAAOC;AAAA,MACP,WAAWC;AAAA,MACX,OAAOC;AAAA,MACP,OAAOC;AAAA,IACR;AAOD,aAASC,EAAGlhB,GAAG8H,GAAG;AAEhB,aAAI9H,MAAM8H,IAGD9H,MAAM,KAAK,IAAIA,MAAM,IAAI8H,IAGzB9H,MAAMA,KAAK8H,MAAMA;AAAA,IAE9B;AAUE,aAASqZ,EAAc5M,GAAS6M,GAAM;AACpC,WAAK,UAAU7M,GACf,KAAK,OAAO6M,KAAQ,OAAOA,KAAS,WAAWA,IAAM,CAAE,GACvD,KAAK,QAAQ;AAAA,IACjB;AAEE,IAAAD,EAAc,YAAY,MAAM;AAEhC,aAASE,EAA2BC,GAAU;AAC5C,UAAI,QAAQ,IAAI,aAAa;AAC3B,YAAIC,IAA0B,CAAE,GAC5BC,IAA6B;AAEnC,eAASC,EAAUC,GAAYliB,GAAO0E,GAAUjC,GAAeD,IAAU2f,GAAcC,IAAQ;AAI7F,YAHA3f,IAAgBA,KAAiBme,GACjCuB,IAAeA,KAAgBzd,GAE3B0d,OAAWlC;AACb,cAAIQ,GAAqB;AAEvB,gBAAI7d,IAAM,IAAI;AAAA,cACZ;AAAA,YAGD;AACD,kBAAAA,EAAI,OAAO,uBACLA;AAAA,UAChB,WAAmB,QAAQ,IAAI,aAAa,gBAAgB,OAAO,UAAY,KAAa;AAElF,gBAAI4T,KAAWhU,IAAgB,MAAMiC;AACrC,YACE,CAACqd,EAAwBtL,EAAQ;AAAA,YAEjCuL,IAA6B,MAE7BvkB;AAAA,cACE,6EACuB0kB,IAAe,gBAAgB1f,IAAgB;AAAA,YAIvE,GACDsf,EAAwBtL,EAAQ,IAAI,IACpCuL;AAAA,UAEZ;AAAA;AAEM,eAAIhiB,EAAM0E,CAAQ,KAAK,OACjBwd,IACEliB,EAAM0E,CAAQ,MAAM,OACf,IAAIid,EAAc,SAASnf,KAAW,OAAO2f,IAAe,8BAA8B,SAAS1f,IAAgB,8BAA8B,IAEnJ,IAAIkf,EAAc,SAASnf,KAAW,OAAO2f,IAAe,iCAAiC,MAAM1f,IAAgB,mCAAmC,IAExJ,OAEAqf,EAAS9hB,GAAO0E,GAAUjC,GAAeD,IAAU2f,CAAY;AAAA,MAE9E;AAEI,UAAIE,IAAmBJ,EAAU,KAAK,MAAM,EAAK;AACjD,aAAAI,EAAiB,aAAaJ,EAAU,KAAK,MAAM,EAAI,GAEhDI;AAAA,IACX;AAEE,aAASvB,EAA2BwB,GAAc;AAChD,eAASR,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAcC,GAAQ;AAChF,YAAIG,IAAYviB,EAAM0E,CAAQ,GAC1B8d,KAAWC,EAAYF,CAAS;AACpC,YAAIC,OAAaF,GAAc;AAI7B,cAAII,IAAcC,EAAeJ,CAAS;AAE1C,iBAAO,IAAIZ;AAAA,YACT,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMO,IAAc,oBAAoBjgB,IAAgB,mBAAmB,MAAM6f,IAAe;AAAA,YAC9J,EAAC,cAAcA,EAAY;AAAA,UAC5B;AAAA,QACT;AACM,eAAO;AAAA,MACb;AACI,aAAOT,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASf,IAAuB;AAC9B,aAAOc,EAA2BrB,CAA4B;AAAA,IAClE;AAEE,aAASQ,EAAyB4B,GAAa;AAC7C,eAASd,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAI,OAAOS,KAAgB;AACzB,iBAAO,IAAIjB,EAAc,eAAeQ,IAAe,qBAAqB1f,IAAgB,iDAAiD;AAE/I,YAAI8f,IAAYviB,EAAM0E,CAAQ;AAC9B,YAAI,CAAC,MAAM,QAAQ6d,CAAS,GAAG;AAC7B,cAAIC,IAAWC,EAAYF,CAAS;AACpC,iBAAO,IAAIZ,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,wBAAwB;AAAA,QAC5K;AACM,iBAASqD,KAAI,GAAGA,KAAIyc,EAAU,QAAQzc,MAAK;AACzC,cAAI1I,IAAQwlB,EAAYL,GAAWzc,IAAGrD,GAAeD,GAAU2f,IAAe,MAAMrc,KAAI,KAAKoa,CAAoB;AACjH,cAAI9iB,aAAiB;AACnB,mBAAOA;AAAA,QAEjB;AACM,eAAO;AAAA,MACb;AACI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASb,IAA2B;AAClC,eAASa,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ;AAC9B,YAAI,CAACM,EAAeud,CAAS,GAAG;AAC9B,cAAIC,IAAWC,EAAYF,CAAS;AACpC,iBAAO,IAAIZ,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,qCAAqC;AAAA,QACzL;AACM,eAAO;AAAA,MACb;AACI,aAAOof,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASZ,IAA+B;AACtC,eAASY,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ;AAC9B,YAAI,CAAC6b,EAAQ,mBAAmBgC,CAAS,GAAG;AAC1C,cAAIC,IAAWC,EAAYF,CAAS;AACpC,iBAAO,IAAIZ,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,0CAA0C;AAAA,QAC9L;AACM,eAAO;AAAA,MACb;AACI,aAAOof,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASX,EAA0B0B,GAAe;AAChD,eAASf,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAI,EAAEniB,EAAM0E,CAAQ,aAAame,IAAgB;AAC/C,cAAIC,IAAoBD,EAAc,QAAQjC,GAC1CmC,IAAkBC,EAAahjB,EAAM0E,CAAQ,CAAC;AAClD,iBAAO,IAAIid,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMY,IAAkB,oBAAoBtgB,IAAgB,mBAAmB,kBAAkBqgB,IAAoB,KAAK;AAAA,QACzN;AACM,eAAO;AAAA,MACb;AACI,aAAOjB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASR,EAAsB2B,GAAgB;AAC7C,UAAI,CAAC,MAAM,QAAQA,CAAc;AAC/B,eAAI,QAAQ,IAAI,aAAa,iBACvB,UAAU,SAAS,IACrBxlB;AAAA,UACE,iEAAiE,UAAU,SAAS;AAAA,QAErF,IAEDA,EAAa,wDAAwD,IAGlE+iB;AAGT,eAASsB,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AAExE,iBADII,IAAYviB,EAAM0E,CAAQ,GACrBoB,IAAI,GAAGA,IAAImd,EAAe,QAAQnd;AACzC,cAAI4b,EAAGa,GAAWU,EAAend,CAAC,CAAC;AACjC,mBAAO;AAIX,YAAIod,KAAe,KAAK,UAAUD,GAAgB,SAAkB3e,IAAKpB,GAAO;AAC9E,cAAI5E,KAAOqkB,EAAezf,CAAK;AAC/B,iBAAI5E,OAAS,WACJ,OAAO4E,CAAK,IAEdA;AAAA,QACf,CAAO;AACD,eAAO,IAAIye,EAAc,aAAanf,IAAW,OAAO2f,IAAe,iBAAiB,OAAOI,CAAS,IAAI,QAAQ,kBAAkB9f,IAAgB,wBAAwBygB,KAAe,IAAI;AAAA,MACvM;AACI,aAAOrB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAAST,EAA0BuB,GAAa;AAC9C,eAASd,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAI,OAAOS,KAAgB;AACzB,iBAAO,IAAIjB,EAAc,eAAeQ,IAAe,qBAAqB1f,IAAgB,kDAAkD;AAEhJ,YAAI8f,IAAYviB,EAAM0E,CAAQ,GAC1B8d,IAAWC,EAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIb,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgB,MAAMK,IAAW,oBAAoB/f,IAAgB,yBAAyB;AAEvK,iBAAS6B,MAAOie;AACd,cAAI7f,EAAI6f,GAAWje,EAAG,GAAG;AACvB,gBAAIlH,IAAQwlB,EAAYL,GAAWje,IAAK7B,GAAeD,GAAU2f,IAAe,MAAM7d,IAAK4b,CAAoB;AAC/G,gBAAI9iB,aAAiB;AACnB,qBAAOA;AAAA,UAEnB;AAEM,eAAO;AAAA,MACb;AACI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASP,EAAuB4B,GAAqB;AACnD,UAAI,CAAC,MAAM,QAAQA,CAAmB;AACpC,uBAAQ,IAAI,aAAa,gBAAe1lB,EAAa,wEAAwE,GACtH+iB;AAGT,eAAS1a,IAAI,GAAGA,IAAIqd,EAAoB,QAAQrd,KAAK;AACnD,YAAIsd,IAAUD,EAAoBrd,CAAC;AACnC,YAAI,OAAOsd,KAAY;AACrB,iBAAA3lB;AAAA,YACE,gGACc4lB,EAAyBD,CAAO,IAAI,eAAetd,IAAI;AAAA,UACtE,GACM0a;AAAA,MAEf;AAEI,eAASsB,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AAExE,iBADImB,KAAgB,CAAE,GACbxd,IAAI,GAAGA,IAAIqd,EAAoB,QAAQrd,KAAK;AACnD,cAAIsd,KAAUD,EAAoBrd,CAAC,GAC/Byd,IAAgBH,GAAQpjB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAcjC,CAAoB;AACxG,cAAIqD,KAAiB;AACnB,mBAAO;AAET,UAAIA,EAAc,QAAQ7gB,EAAI6gB,EAAc,MAAM,cAAc,KAC9DD,GAAc,KAAKC,EAAc,KAAK,YAAY;AAAA,QAE5D;AACM,YAAIC,KAAwBF,GAAc,SAAS,IAAK,6BAA6BA,GAAc,KAAK,IAAI,IAAI,MAAK;AACrH,eAAO,IAAI3B,EAAc,aAAanf,IAAW,OAAO2f,IAAe,oBAAoB,MAAM1f,IAAgB,MAAM+gB,KAAuB,IAAI;AAAA,MACxJ;AACI,aAAO3B,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASV,IAAoB;AAC3B,eAASU,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,eAAKsB,EAAOzjB,EAAM0E,CAAQ,CAAC,IAGpB,OAFE,IAAIid,EAAc,aAAanf,IAAW,OAAO2f,IAAe,oBAAoB,MAAM1f,IAAgB,2BAA2B;AAAA,MAGpJ;AACI,aAAOof,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAAS4B,EAAsBjhB,GAAeD,GAAU2f,GAAc7d,GAAKhG,GAAM;AAC/E,aAAO,IAAIqjB;AAAA,SACRlf,KAAiB,iBAAiB,OAAOD,IAAW,YAAY2f,IAAe,MAAM7d,IAAM,+FACXhG,IAAO;AAAA,MACzF;AAAA,IACL;AAEE,aAASkjB,EAAuBmC,GAAY;AAC1C,eAAS7B,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ,GAC1B8d,IAAWC,EAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIb,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgBK,IAAW,QAAQ,kBAAkB/f,IAAgB,wBAAwB;AAEtK,iBAAS6B,MAAOqf,GAAY;AAC1B,cAAIP,IAAUO,EAAWrf,EAAG;AAC5B,cAAI,OAAO8e,KAAY;AACrB,mBAAOM,EAAsBjhB,GAAeD,GAAU2f,GAAc7d,IAAKqe,EAAeS,CAAO,CAAC;AAElG,cAAIhmB,KAAQgmB,EAAQb,GAAWje,IAAK7B,GAAeD,GAAU2f,IAAe,MAAM7d,IAAK4b,CAAoB;AAC3G,cAAI9iB;AACF,mBAAOA;AAAA,QAEjB;AACM,eAAO;AAAA,MACb;AACI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAASL,EAA6BkC,GAAY;AAChD,eAAS7B,EAAS9hB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAc;AACxE,YAAII,IAAYviB,EAAM0E,CAAQ,GAC1B8d,IAAWC,EAAYF,CAAS;AACpC,YAAIC,MAAa;AACf,iBAAO,IAAIb,EAAc,aAAanf,IAAW,OAAO2f,IAAe,gBAAgBK,IAAW,QAAQ,kBAAkB/f,IAAgB,wBAAwB;AAGtK,YAAImhB,KAAUvkB,EAAO,CAAA,GAAIW,EAAM0E,CAAQ,GAAGif,CAAU;AACpD,iBAASrf,KAAOsf,IAAS;AACvB,cAAIR,KAAUO,EAAWrf,CAAG;AAC5B,cAAI5B,EAAIihB,GAAYrf,CAAG,KAAK,OAAO8e,MAAY;AAC7C,mBAAOM,EAAsBjhB,GAAeD,GAAU2f,GAAc7d,GAAKqe,EAAeS,EAAO,CAAC;AAElG,cAAI,CAACA;AACH,mBAAO,IAAIzB;AAAA,cACT,aAAanf,IAAW,OAAO2f,IAAe,YAAY7d,IAAM,oBAAoB7B,IAAgB,qBACjF,KAAK,UAAUzC,EAAM0E,CAAQ,GAAG,MAAM,IAAI,IAC7D;AAAA,gBAAmB,KAAK,UAAU,OAAO,KAAKif,CAAU,GAAG,MAAM,IAAI;AAAA,YACtE;AAEH,cAAIvmB,IAAQgmB,GAAQb,GAAWje,GAAK7B,GAAeD,GAAU2f,IAAe,MAAM7d,GAAK4b,CAAoB;AAC3G,cAAI9iB;AACF,mBAAOA;AAAA,QAEjB;AACM,eAAO;AAAA,MACb;AAEI,aAAOykB,EAA2BC,CAAQ;AAAA,IAC9C;AAEE,aAAS2B,EAAOlB,GAAW;AACzB,cAAQ,OAAOA,GAAS;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,CAACA;AAAA,QACV,KAAK;AACH,cAAI,MAAM,QAAQA,CAAS;AACzB,mBAAOA,EAAU,MAAMkB,CAAM;AAE/B,cAAIlB,MAAc,QAAQvd,EAAeud,CAAS;AAChD,mBAAO;AAGT,cAAIvc,IAAahJ,EAAculB,CAAS;AACxC,cAAIvc,GAAY;AACd,gBAAIC,IAAWD,EAAW,KAAKuc,CAAS,GACpCrc;AACJ,gBAAIF,MAAeuc,EAAU;AAC3B,qBAAO,EAAErc,IAAOD,EAAS,KAAI,GAAI;AAC/B,oBAAI,CAACwd,EAAOvd,EAAK,KAAK;AACpB,yBAAO;AAAA;AAKX,qBAAO,EAAEA,IAAOD,EAAS,KAAI,GAAI,QAAM;AACrC,oBAAI4d,IAAQ3d,EAAK;AACjB,oBAAI2d,KACE,CAACJ,EAAOI,EAAM,CAAC,CAAC;AAClB,yBAAO;AAAA,cAGzB;AAAA,UAEA;AACU,mBAAO;AAGT,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACf;AAAA,IACA;AAEE,aAASC,EAAStB,GAAUD,GAAW;AAErC,aAAIC,MAAa,WACR,KAIJD,IAKDA,EAAU,eAAe,MAAM,YAK/B,OAAO,UAAW,cAAcA,aAAqB,SAThD;AAAA,IAcb;AAGE,aAASE,EAAYF,GAAW;AAC9B,UAAIC,IAAW,OAAOD;AACtB,aAAI,MAAM,QAAQA,CAAS,IAClB,UAELA,aAAqB,SAIhB,WAELuB,EAAStB,GAAUD,CAAS,IACvB,WAEFC;AAAA,IACX;AAIE,aAASG,EAAeJ,GAAW;AACjC,UAAI,OAAOA,IAAc,OAAeA,MAAc;AACpD,eAAO,KAAKA;AAEd,UAAIC,IAAWC,EAAYF,CAAS;AACpC,UAAIC,MAAa,UAAU;AACzB,YAAID,aAAqB;AACvB,iBAAO;AACF,YAAIA,aAAqB;AAC9B,iBAAO;AAAA,MAEf;AACI,aAAOC;AAAA,IACX;AAIE,aAASa,EAAyBngB,GAAO;AACvC,UAAI5E,IAAOqkB,EAAezf,CAAK;AAC/B,cAAQ5E,GAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,QAAQA;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,OAAOA;AAAA,QAChB;AACE,iBAAOA;AAAA,MACf;AAAA,IACA;AAGE,aAAS0kB,EAAaT,GAAW;AAC/B,aAAI,CAACA,EAAU,eAAe,CAACA,EAAU,YAAY,OAC5C3B,IAEF2B,EAAU,YAAY;AAAA,IACjC;AAEE,WAAA1B,EAAe,iBAAiBxe,GAChCwe,EAAe,oBAAoBxe,EAAe,mBAClDwe,EAAe,YAAYA,GAEpBA;AAAA,EACR;;;;;;ACxlBD,MAAIX,IAA4DhlB,gBAAAA,GAAA;AAEhE,WAAS6oB,IAAgB;AAAA,EAAA;AACzB,WAASC,IAAyB;AAAA,EAAA;AAClC,SAAAA,EAAuB,oBAAoBD,GAE3CE,KAAiB,WAAW;AAC1B,aAASC,EAAKlkB,GAAO0E,GAAUjC,GAAeD,GAAU2f,GAAcC,GAAQ;AAC5E,UAAIA,MAAWlC,GAIf;AAAA,YAAIrd,IAAM,IAAI;AAAA,UACZ;AAAA,QAGD;AACD,cAAAA,EAAI,OAAO,uBACLA;AAAA;AAAA;AAER,IAAAqhB,EAAK,aAAaA;AAClB,aAASC,IAAU;AACjB,aAAOD;AAAA,IAEX;AAEE,QAAIrD,IAAiB;AAAA,MACnB,OAAOqD;AAAA,MACP,QAAQA;AAAA,MACR,MAAMA;AAAA,MACN,MAAMA;AAAA,MACN,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MACR,QAAQA;AAAA,MAER,KAAKA;AAAA,MACL,SAASC;AAAA,MACT,SAASD;AAAA,MACT,aAAaA;AAAA,MACb,YAAYC;AAAA,MACZ,MAAMD;AAAA,MACN,UAAUC;AAAA,MACV,OAAOA;AAAA,MACP,WAAWA;AAAA,MACX,OAAOA;AAAA,MACP,OAAOA;AAAA,MAEP,gBAAgBH;AAAA,MAChB,mBAAmBD;AAAA,IACpB;AAED,WAAAlD,EAAe,YAAYA,GAEpBA;AAAA,EACR;;;;;ACzDD,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAIN,IAAUrlB,GAAmB,GAI7BwlB,IAAsB;AAC1B0D,IAAAA,GAAA,UAAqD/c,gBAAAA,GAAA,EAACkZ,EAAQ,WAAWG,CAAmB;AAAA,EAC9F;AAGE0D,IAAAA,GAAA,UAAiBnX,gBAAAA,KAAuC;;;;;ACC1D,IAAI2pB,KAAc,SAAqBztB,GAAK;AAC1C,SAAOA,EAAI,QAAQ,4BAA4B,MAAM;AACvD,GAEI0tB,KAAe;AAAA,EACjB,IAAI;AAAA,EACJ,SAAS;AACX,GAEIC,KAA+B,SAAsCC,GAAQC,GAAe;AAC9F,EAAAniB,GAAUmiB,MAAkB,QAAQA,MAAkB,WAAW,sDAA2D,OAAOA,GAAe,GAAI,CAAC;AAEvJ,MAAIC,IAAeF,EAAO,QAAQF,GAAa,OAAO,GAClDK,IAAUH,EAAO,QAAQF,GAAa,EAAE;AAO5C,SALII,IAAe,MAAGA,IAAe,OACjCC,IAAU,MAAGA,IAAU,OAE3BriB,GAAUoiB,MAAiB,QAAQC,MAAY,MAAM,eAAe,OAAOH,GAAQ,yEAAyE,CAAC,GAEzJE,MAAiB,QAAQC,MAAY,OAEhCF,MAAkB,QAAQE,KAAWD,KAAgBD,MAAkB,aAAaC,KAAgBC,IAAU,IAAI,IAIpH;AACT,GAEIC,KAAiB,SAAwBC,GAAS;AACpD,MAAIC,IAAwB;AAC5B,SAAO,IAAI,OAAOD,EAAQ,IAAI,SAAUE,GAAO;AAC7C,QAAIC,IAAwBF,EAAsB,KAAKC,EAAM,SAAQ,CAAE,GACnEE,IAAyBtF,GAAeqF,GAAuB,CAAC,GAChEE,IAAcD,EAAuB,CAAC,GACtCE,IAAaF,EAAuB,CAAC;AAEzC,WAAA3iB,GAAU,CAAC6iB,GAAY,2CAA2C,OAAOD,GAAa,GAAG,EAAE,OAAOC,GAAY,SAAS,EAAE,OAAOD,GAAa,GAAG,CAAC,GAC1I,IAAI,OAAOA,GAAa,GAAG;AAAA,EACnC,CAAA,EAAE,KAAK,GAAG,GAAG,GAAG;AACnB,GAEIE,KAAoB,SAA2BZ,GAAQ;AACzD,MAAIa,IAAQ;AACZ,SAAIb,EAAO,QAAQ,QAAQ,KAAK,KAAGa,KAC/Bb,EAAO,QAAQ,aAAa,KAAK,KAAGa,KACjCA;AACT,GAEIC,KAAU,WAAmB;GAI7BC,KAAwB,SAA+B50B,GAAOU,GAAQm0B,GAAgB;AAkBxF,WAjBIC,IAAe,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAIH,IACnFP,IAAQH,GAAevzB,EAAO,IAAI,SAAUnI,GAAG;AACjD,WAAOA,EAAE;AAAA,EACb,CAAG,CAAC,GACEw8B,IAAY,GAEZC,IAAsBt0B,EAAO,IAAI,SAAU+R,GAAM;AACnD,QAAIohB,IAASphB,EAAK,QACd1L,IAASguB;AAEb,WAAAA,KAAaN,GAAkBZ,CAAM,IAAI,GAClC9sB;AAAA,EACX,CAAG,GACGxJ,GACA0J,IAAQ,GACRguB,IAAwB,IAEpB13B,IAAQ62B,EAAM,KAAKp0B,CAAK,OAAO,QAAM;AAC3C,QAAIk1B,IAASF,EAAoB,KAAK,SAAU9vB,GAAG;AACjD,aAAO,CAAC,CAAC3H,EAAM2H,CAAC;AAAA,IACtB,CAAK,GAEGiwB,IAAoBH,EAAoB,QAAQE,CAAM,GACtDE,IAAwB10B,EAAOy0B,CAAiB,GAChDtB,IAASuB,EAAsB,QAC/BC,IAAmBD,EAAsB,kBACzCE,IAAQJ,IAAStB,GAA6BC,GAAQ,IAAI,GAC1D0B,IAAaL,IAAStB,GAA6BC,GAAQ,SAAS,GACpEzY,IAAK7d,EAAM+3B,CAAK,GAChBE,IAAUH,EAAiBja,GAAI7d,EAAMg4B,CAAU,CAAC,GAChDE,IAASz1B,EAAM,UAAUiH,GAAO1J,EAAM,KAAK;AAC/C,IAAAu3B,EAAaW,GAAQxuB,GAAOguB,CAAqB,GACjDA,KAAyBQ,EAAO,QAChCZ,EAAet3B,EAAM,CAAC,GAAGA,EAAM,OAAO03B,GAAuB7Z,GAAIoa,GAASL,GAAmBluB,CAAK,GAClGguB,KAAyBO,EAAQ,QACjCvuB,IAAQmtB,EAAM;AAAA,EAClB;AAEE,EAAIntB,IAAQjH,EAAM,UAChB80B,EAAa90B,EAAM,UAAUiH,CAAK,GAAGA,GAAOguB,CAAqB;AAErE,GAEIS,KAAe,SAAsB11B,GAAOU,GAAQ;AACtD,MAAIqG,IAAS;AACb,SAAA6tB,GAAsB50B,GAAOU,GAAQ,SAAUnD,GAAO8J,GAAOsuB,GAAgBva,GAAIoa,GAAS;AACxF,IAAAzuB,KAAUyuB;AAAA,EACX,GAAE,SAAUI,GAAW;AACtB,IAAA7uB,KAAU6uB;AAAA,EACd,CAAG,GACM7uB;AACT,GASI8uB,KAAoB,SAA2B71B,GAAOU,GAAQo1B,GAAkB;AAClF,MAAIC,IAAqB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAE7F,MAAI,OAAOD,KAAqB;AAC9B,WAAOA;AAGT,MAAI/uB,GAEA+tB,IAAe,SAAsBW,GAAQpuB,GAAO2uB,GAAsB;AAC5E,IAAIjvB,MAAW,UAEXivB,IAAuBP,EAAO,UAAUK,MAE1C/uB,IAASM,IAAQyuB,IAAmBE;AAAA,EAEvC,GAEGnB,IAAiB,SAAwBhB,GAAQxsB,GAAO4uB,GAAuB7a,GAAIoa,GAASU,GAAYC,GAAqB;AAC/H,IAAIpvB,MAAW,UAEXkvB,IAAwBT,EAAQ,SAASM,MAIvCC,MAAuB,SACzBhvB,IAAS,OAETA,IAASM,KAAS0uB,MAAuB,QAAQlC,EAAO,SAAS;AAAA,EAGtE;AAED,SAAAe,GAAsB50B,GAAOU,GAAQm0B,GAAgBC,CAAY,GAG1D/tB,MAAW,SAAY/G,EAAM,SAAS+G;AAC/C,GAEIqvB,KAAe,SAAsBnwB,GAAKgB,GAAOC,GAAKmvB,GAAQ;AAChE,SAAOpwB,EAAI,UAAU,GAAGgB,CAAK,IAAIovB,IAASpwB,EAAI,UAAUiB,CAAG;AAC7D,GAIIovB,KAAqB,SAA4Bt2B,GAAOu2B,GAAgB9jB,GAAM/R,GAAQ;AACxF,MAAI81B,IAAuB/jB,EAAK,sBAC5BgkB,IAAqBhkB,EAAK,oBAC1BikB,IAAoBjkB,EAAK,mBACzBkkB,IAAoBjB,GAAa11B,GAAOU,CAAM,GAC9Ck2B,IAAcD,EAAkB,SAASJ,EAAe;AAE5D,EAAIC,MAAyB,gBAC3BA,IAAuBE,IAAoBE,IAGzCH,MAAuB,gBACzBA,IAAqBD,IAInBA,MAAyBC,KAAsBA,MAAuBC,KAAqBC,EAAkB,WAAWJ,EAAe,WACzIC,IAAuBA,IAAuB;AAIhD,MAAIH,IAASE,EAAe,MAAMC,GAAsBE,CAAiB,GAErEG,IAAc,KAAK,IAAIL,GAAsBE,CAAiB,GAC9DI,IAAYL;AAEhB,EAAID,MAAyBE,MAE3BI,IAAY,KAAK,IAAIL,GAAoBD,IAAuBI,CAAW;AAG7E,MAAIG,IAAoBlB,GAAkB71B,GAAOU,GAAQm2B,GAAa,OAAO,GACzEG,IAAkBnB,GAAkB71B,GAAOU,GAAQo2B,GAAW,KAAK,GACnEG,IAAqBpB,GAAkB71B,GAAOU,GAAQm2B,GAAa,MAAM,GACzEK,IAAmBrB,GAAkB71B,GAAOU,GAAQo2B,GAAW,MAAM,GACrEK,IAAoBF,MAAuB,QAAQC,MAAqB,MACxEE,IAAWhB,GAAap2B,GAAO+2B,GAAmBC,GAAiBX,CAAM;AAE7E,MAAI,CAACc,GAAmB;AAEtB,QAAIE,IAAwB3B,GAAa0B,GAAU12B,CAAM;AAEzD,QAAI22B,MAA0Bd,GAAgB;AAK5C,WAFAM,IAAc,GAEPN,EAAeM,CAAW,MAAMQ,EAAsBR,CAAW;AACtE,QAAAA;AAIF,MAAAR,IAASE,EAAe,MAAMM,GAAaH,CAAiB,GAE5DI,IAAYH,EAAkB,YAAYJ,EAAe,UAAUG,CAAiB,CAAC,GAErFK,IAAoBlB,GAAkB71B,GAAOU,GAAQm2B,GAAa,OAAO,GACzEG,IAAkBnB,GAAkB71B,GAAOU,GAAQo2B,GAAW,KAAK,GACnEM,IAAWhB,GAAap2B,GAAO+2B,GAAmBC,GAAiBX,CAAM;AAAA,IAC/E;AAAA,EACA;AAEE,SAAOe;AACT,GAKIE,KAAgC,SAAuCt3B,GAAOU,GAAQo1B,GAAkB;AAC1G,MAAI/uB,IAAS+uB,GACTyB,IAAe,IAEf1C,IAAiB,SAAwBhB,GAAQxsB,GAAO4uB,GAAuB7a,GAAIoa,GAASU,GAAYC,GAAqB;AAC/H,IAAIF,KAAyBH,KAAoBG,IAAwBT,EAAQ,SAASM,MACxF/uB,IAASkvB,GACTsB,IAAe;AAAA,EAElB;AAID,MAFA3C,GAAsB50B,GAAOU,GAAQm0B,CAAc,GAE/C0C;AACF,WAAOxwB;AAEX,GAEIywB,KAAc,SAAqBx3B,GAAOU,GAAQ;AACpD,MAAI+2B,IAAW,CAAE;AACjB,SAAA7C,GAAsB50B,GAAOU,GAAQ,SAAUnD,GAAO8J,GAAOsuB,GAAgBva,GAAIoa,GAASU,GAAYjvB,GAAO;AAC3G,IAAAwwB,EAAS,KAAK;AAAA,MACZ,IAAIrc;AAAA,MACJ,SAASoa;AAAA,MACT,YAAYU;AAAA,MACZ,OAAO7uB;AAAA,MACP,gBAAgBsuB;AAAA,IACtB,CAAK;AAAA,EACL,CAAG,GACM8B;AACT,GAEIC,KAAsB,SAA6Bz6B,GAAQme,GAAI;AACjE,SAAO,GAAG,OAAOne,GAAQ,GAAG,EAAE,OAAOme,CAAE;AACzC,GAEIuc,KAAmB,SAA0BC,GAAa;AAC5D,SAAO,OAAO,OAAOA,CAAW,EAAE,OAAO,SAAUxO,GAAK3W,GAAM;AAC5D,QAAIolB,IAAUplB,EAAK;AACnB,WAAO2W,IAAMyO,EAAQ;AAAA,EACtB,GAAE,CAAC;AACN,GAEIC,KAAsB,SAA6B93B,GAAOU,GAAQ;AACpE,MAAI+2B,IAAWD,GAAYx3B,GAAOU,CAAM,GACpCq3B,IAAcN,EAASA,EAAS,SAAS,CAAC;AAC9C,SAAOM,IAAcA,EAAY,iBAAiBA,EAAY,QAAQ,SAAS;AACjF,GAEIC,KAAgB,SAAuBnE,GAAQ;AACjD,MAAIoE,IAAgBvE,GAAYG,CAAM,GAClCqE,IAAmBrE,EAAOA,EAAO,QAAQF,GAAa,OAAO,IAAIA,GAAa,QAAQ,MAAM,GAC5FwE,IAActE,EAAOA,EAAO,QAAQF,GAAa,EAAE,IAAIA,GAAa,GAAG,MAAM;AACjF,SAAO,IAAI,OAAOsE,EAAc,QAAQtE,GAAa,SAAS,MAAM,OAAOD,GAAYwE,KAAoB,EAAE,GAAG,MAAM,CAAC,EAAE,QAAQvE,GAAa,IAAI,MAAM,OAAOD,GAAYyE,KAAe,EAAE,GAAG,MAAM,CAAC,CAAC;AACzM,GAEIC,KAAyB,SAAgCx0B,GAAU;AACrE,SAAOy0B,GAAS,QAAQz0B,CAAQ,EAAE,IAAI,SAAU6O,GAAM;AACpD,QAAI6lB,IAAa7lB,EAAK,OAClBohB,IAASyE,EAAW,QACpBlE,IAAQkE,EAAW,OACnBjD,IAAmBiD,EAAW;AAClC,WAAO;AAAA,MACL,QAAQzE;AAAA,MACR,OAAOO,IAAQmE,GAAsBnE,GAAOP,CAAM,IAAImE,GAAcnE,CAAM;AAAA,MAC1E,kBAAkBwB,KAAoB,SAAUja,GAAIoa,GAAS;AAC3D,eAAOA,KAAWpa;AAAA,MAC1B;AAAA,IACK;AAAA,EACL,CAAG;AACH,GAGImd,KAAwB,SAA+BnE,GAAOP,GAAQ;AACxE,MAAI2E,IAAiB,IAAI,OAAOpE,EAAM,SAAQ,IAAK,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,GACtEqE,IAAuBhE,GAAkBZ,CAAM;AACnD,SAAAliB,GAAU6mB,MAAmBC,GAAsB,wCAAwC,OAAOrE,EAAM,YAAY,IAAI,EAAE,OAAOoE,GAAgB,6DAA6D,EAAE,OAAO3E,GAAQ,KAAK,EAAE,OAAO4E,GAAsB,GAAG,CAAC,GAChQrE;AACT,GAEIsE,KAAqB,SAA4B7E,GAAQzY,GAAIoa,GAAS;AACxE,SAAO3B,EAAO,QAAQF,GAAa,IAAIvY,CAAE,EAAE,QAAQuY,GAAa,SAAS6B,CAAO;AAClF,GAIImD,KAAoB,CAAC;AAAA,EACvB,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AACX,GAAG;AAAA,EACD,MAAM;AAAA,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","x_google_ignoreList":[0,1,2,6,7,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,45,46,50,53,54,55,56,57,58,59,60,61,62,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,157,163,164,165,166,167,168,170,179,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269]}
|